Programmierung

Automatische Positionierung von Dialogobjekten

Bis vor einiger Zeit war eine Anpassung der Dialogobjekte bei Größenänderungen des Dialogs nur über das Ereignis EvtPosChanged möglich. Durch die Verwendung einiger Eigenschaften kann nun, bis auf in einigen Spezialfällen, darauf verzichtet werden. In diesem Artikel möchte ich Ihnen die Möglichkeiten hierfür aufzeigen.


Alle Objekte mit Unterobjekten enthalten die Eigenschaft wpGrouping. Diese Eigenschaft bewirkt, dass alle Unterobjekte gleichmäßig auf die Breite (_WinGroupingTileHorz) oder Höhe (_WinGroupingTileVert) des Objektes verteilt werden. Werden die untergeordneten Objekte beispielsweise auf die Breite verteilt, werden sie so hoch gezeichnet, wie das Eltern-Objekt hoch ist.
Wird nur die Eigenschaft wpGrouping gesetzt, wird der verfügbare Platz gleichmäßig auf die untergeordneten Objekte aufgeteilt. Um eines der untergeordneten Objekte entweder nicht mit anzupassen, oder mit einer festen Höhe / Breite zu versehen kann die Eigenschaft wpAlignGrouping verwendet werden. Diese wird beim jeweiligen untergeordneten Objekt gesetzt.
Bei _WinAlignGroupingLeft und _WinAlignGroupingRight wird das Objekt mit der festen Breite aus der Eigenschaft wpAlignWidth und bei _WinAlignGroupingTop und _WinAlignGroupingBottom mit der festen Höhe der Eigenschaft wpAlignHeight am jeweiligen Rand gezeichnet.
Im oben angezeigten Bild ist beim Dialog die Eigenschaft wpGrouping auf _WinGroupingTileVert gesetzt. Die Eigenschaft wpAlignGrouping ist beim oberen Button auf _WinAlignGroupingTop und beim unteren auf _WinAlignGroupingBottom gesetzt. Das bewirkt, dass diese Objekte mit einer festen Höhe dargestellt werden. Beim mittleren Button hat die Eigenschaft wpAlignGrouping den Wert _WinAlignGroupingTiled. Alle Objekte mit diesem Wert werden gleichmäßig im restlichen freien Platz vergrößert.
Falls diese Eigenschaften das Fenster nicht fein genug vergrößerbar machen, kann ein Objekt durch Verwendung von GroupSplit und GroupTile-Objekten in Teilbereiche aufteilen. Über die Eigenschaften wpWidth und wpHeight kann ein Verhältnis gegenüber einem anderen GroupTile angegeben werden. Wird ein negativer Wert eingetragen, erhält das GroupTile eine feste Höhe oder Breite.
Die Verwendung der automatischen Positionierung von Dialogobjekten ist meist schneller als die Verwendung des Ereignisses EvtPosChanged.

Keine Kommentare

Kommentar abgeben