Hallo Ani
Als erstes Mal muß ich Dir ein großes Lob aussprechen, Deine Tipps waren echt super! Vielen Dank für die viele Hilfe!
Anbei habe ich aber noch ein klitze kleines Problemchen...
Bei der Ausgabe erstelle ich nun mit painpicture Bilder auf dem Ausgabeform. Ich habe im Formload des forms eine prozedure, in der ich Scrollbalken einbinde... Das funktioniert soweit sehr gut. Ich rufe das Fenster auf, als erstes (in der Formload-Funktion) wird die Erstellung ausgeführt, und danach werden die Scrollbalken angezeigt (falls erforderlich).
Das Problem ist nun, ich habe eine andere Funktion auf dem Formular, mit der man die Anordnung der Objekte ändern kann. Und zwar folgendermaßen:
Als erstes fragt dich das Programm wieviele Objekte du in horizontaler Richtung erstellen möchtest und dann zu jedem horizontalen Objekt wieviele vertikalen Objekte du erstellen möchtest.
Und genso ist es auch Programmiert (der Ablauf ist genauso, nicht gefaket!)
Jetzt habe ich das Problem, das nach dem Umsortieren, zwar die Picturebox, die für die Scrollbalken relevant ist, vergrößert wird, aber es werden keine Scrollbalken dazu angezeit!
Ich hätte gedacht, das die Scrollbalken mit meiner Prozedure automatisch erscheinen, sobald sich die Größe des Forms dem entsprechen ändert! Hast du eine Idee?
Grüße Primax...
Hier der Code für die Scrollbalken...
Picture1, ist die Picturebox die im Hintergrund liegt. Sie wird immer mit der Anordnung geändert!
Private Sub Form_Load()
If Not Lademerker Then
Umrechnungsfaktor = 20
Call Ausgabe 'Hier rufe ich die normale Ausgabe auf! Das Ändern der Anordnung wird erst auf dem erstellten Formular gestartet!
End If
'wird für die Scrollbalken benötigt
FrmLoading = True
With Me
.Width = 5000 \ Umrechnungsfaktor
.Height = 4000 \ Umrechnungsfaktor
End With
With Picture1
.BorderStyle = 0
.Move 0, 0
PicBoxWidth = .Width
PicBoxHeight = .Height
End With
With Picture2
.Height = HGHTWDTH
.Width = HGHTWDTH
.BorderStyle = 0
.ZOrder 0
End With
With HScroll1
.left = 0
.Height = HGHTWDTH
.TabStop = False
.ZOrder 0
End With
With VScroll1
.Top = 0
.Width = HGHTWDTH
.TabStop = False
.ZOrder 0
End With
FrmLoading = False
End Sub
Private Sub Form_Resize()
If FrmLoading Or Me.WindowState = vbMinimized Then Exit Sub
Call GetScrollBars
End Sub
Private Sub GetScrollBars()
Dim Height As Single
Dim Width As Single
Dim HScroll As Boolean
Dim VScroll As Boolean
On Error Resume Next
Width = Me.ScaleWidth
Height = Me.ScaleHeight
HScroll = CBool(Width < PicBoxWidth)
If HScroll Then
Height = Height - HGHTWDTH
End If
VScroll = CBool(Height < PicBoxHeight)
If VScroll Then
Width = Width - HGHTWDTH
If Not HScroll Then
HScroll = CBool(Width < PicBoxWidth)
If HScroll Then
Height = Height - HGHTWDTH
End If
End If
End If
If HScroll Then
With HScroll1
.Top = Height
.Width = Width
.Min = 0
.Max = PicBoxWidth - Width
.LargeChange = Picture1.Width * 0.1
.SmallChange = .LargeChange / 4
.Visible = True
End With
Else
With HScroll1
.Value = 0
.Visible = False
End With
End If
If VScroll Then
With VScroll1
.left = Width
.Height = Height
.Min = 0
.Max = PicBoxHeight - Height
.LargeChange = Picture1.Height * 0.1
.SmallChange = .LargeChange / 4
.Visible = True
End With
Else
With VScroll1
.Value = 0
.Visible = False
End With
End If
If HScroll1.Visible And VScroll1.Visible Then
With Picture2
.Move VScroll1.left, HScroll1.Top
.Visible = True
End With
Else
Picture2.Visible = False
End If
End Sub
Private Sub HScroll1_Change()
Picture1.left = -HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
HScroll1_Change
End Sub
Private Sub VScroll1_Change()
Picture1.Top = -VScroll1.Value
End Sub
Private Sub VScroll1_Scroll()
VScroll1_Change
End Sub