Freitag, 24. November 2017

Home
Tipps
Bücher
Software
News / Links
Hilfe
Impressum

Sponsored by
QualityHosting

Tipp/Trick
Gefügige Steuerelemente (Access 97, 2000)
Die Größe von Steuerelementen oder deren Position wird nicht automatisch angepaßt.

Obwohl sich Formularfenster nahezu beliebig in der Größe ändern lassen, hat dies in der Regel wenige Auswirkungen auf den Inhalt der Formulare. Die Größe der Steuerelemente oder deren Position wird nämlich nicht automatisch angepasst.

Dank der BeiGrössenänderung-Eigenschaft können Sie eine Ereignisprozedur entwickeln, die alle Steuerelemente an die aktuelle Formulargröße anpasst. Der vorhandene Platz kann so optimal ausgenutzt werden.

Das Grössenänderung-Ereignis (engl. Resize) wird von Access beim Öffnen des Formulars und bei jeder Größenänderung ausgelöst. Mit einer entsprechenden Ereignisprozedur können Sie also die Position (Left- und Top-Eigenschaften) und die Größe (Width- und Height-Eigenschaften) der einzelnen Steuerelemente anpassen.

Zusätzlich benötigen Sie noch Informationen über die aktuelle Größe des Formulars. Diese ermitteln die beiden Eigenschaften InsideHeight und InsideWidth, die jedes Formular zur Verfügung stellt.

Die folgende Ereignisprozedur bezieht sich auf ein Formular, das lediglich ein einzelnes Listenfeld mit dem Namen lstLieferanten einhält. Die Größe dieses Listenfeldes wird an die aktuelle Formulargröße angepasst, wobei an allen Seiten ein Rand von 100 Tipps reserviert wird:

Private Sub Form_Resize()

    Const Rand = 100

    With Me!lstLieferanten
        If .Top <> Rand Then .Top = Rand
        If .Left <> Rand Then .Left = Rand
        .Height = Max(Me.InsideHeight - Rand * 2, 0)
        .Width = Max(Me.InsideWidth - Rand * 2, 0)
    End With

End Sub

Innerhalb der Ereignisprozedur kommt eine Funktion namens Max zum Einsatz, die immer den maximalen zweier Werte zurückgibt. Die Funktion verhindert in der obigen Prozedur, dass die Breite oder Höhe des Steuerelements bei sehr kleinen Formularausmaßen negative Werte annimmt.

Private Function Max(a, b) As Long

Max = IIf(a > b, a, b)

End Function




Ein Service der TriniDat Software-Entwicklung GmbH - Am Wehrhahn 45 - 40211 Düsseldorf

  Suche
Suche starten
  Service
Leserbrief / Frage zu Access
Kontakt
  NewsLetter
NewLetter bestellen
NewsLetter abbestellen
  Partner-Seiten
HyperLink

www.trinidat.de


HyperLink

www.fulldotnet.de