# form scrollen



## Udo (15. Oktober 2002)

Hallo Leute!

Hat jemand ne ahnung wie man den ganzen inhalt einer Form scrollen kann??

Weiß zwar wie es funktioniert das man einzellne elemente in der Form zum scrollen bringt aber wenn ich für jedes element meiner form diese funktion schreiben muss, dann bin ich in Pension bevor ich fertig bin!!

Bitte Hilfe


----------



## Dario Linsky (15. Oktober 2002)

was meinst du genau mit "scrollen"? willst du einen scrollbalken an deinem formular anbringen und damit dann die position der steuerelemente verschieben?


----------



## Udo (15. Oktober 2002)

ja genau das meine ich möchte einen scrollbalken in meine form einbaun aber ich möchte nicht meine ganzen steuerelemente einzelln ansprechen, denn das würde urlang dauern!!


----------



## Dario Linsky (15. Oktober 2002)

> ja genau das meine ich möchte einen scrollbalken in meine form einbaun aber ich möchte nicht meine ganzen steuerelemente einzelln ansprechen, denn das würde urlang dauern!!



ansichtssache. wenn man sich geschickt anstellt, kann man das erheblich abkürzen.
du kannst einfach alle steuerelemente im formular nacheinander mit einer schleife ansprechen. das könnte dann z.b. so aussehen:

```
Private letztePos As Integer

Private Sub VScroll1_Change()
Dim c As Control

For Each c In Me.Controls
    If Not TypeOf c Is VScrollBar Then ' die scrollbar soll nicht mit scrollen
        If letztePos < VScroll1.Value Then
            c.Top = c.Top + ((VScroll1.Value - letztePos) * Screen.TwipsPerPixelY)
        Else
            c.Top = c.Top - ((letztePos - VScroll1.Value) * Screen.TwipsPerPixelY)
        End If
    End If
Next c

letztePos = VScroll1.Value

End Sub
```

bei einigen steuerelementen musst du dann allerdings etwas aufpassen, da diese nicht unbedingt eine eigenschaft namens top haben. beispielsweise haben steuerelemente vom typ line an der stelle zwei x-/y-koordinaten, die den start- und endpunkt definieren.


----------



## Udo (15. Oktober 2002)

ohhh mann, auf das habe ich überhaupt nicht gedacht, danke dir erstmal werde es ausprobieren sobald ich zeit habe!! THX


----------



## wasserflasche (17. Mai 2004)

*soweit so gut*

hi,

hab deinen source auch in meinem formular eingefügt.. allerdings erhalte ich eine fehletrmeldung:
"'Top' property cannot be read at run time"

du hast irgendwas geschrieben, das man bei bestimmten steuerelemente typ linie aufpassen muss.. ich hab hier mehrere linien.. 
wie ändere ich den source, damit ich trotzdem scrollen kann

grüße,
Christina


----------



## Retlaw (17. Mai 2004)

In die Schleife sowas einbauen:

```
IF EsHandeltSichUmEineLinie
    'Anstatt Top Y1 und Y2 verwenden
Else
    'Mit Top-Eigenschaft arbeiten
End If
```

Oder du verwendest einen Container, z.B. Frame oder Image, da kommen alle Steuerelemente rein, ausser die Scrollbar.
Jetzt musst du nur den Container (Frame/Image/...) über die Top-Eigenschaft verschieben und alle Elemente im Container wandern mit.


----------

