Einzelnen Beitrag anzeigen

Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#1

Collapsible Margins

  Alt 2. Jul 2019, 05:32
Hallo,

Es gibt seit einiger Zeit die Margins-Eigenschaft für jedes Steuerelement, aber zwei benachbarte Steuerelement werden ihre Margins nicht verschmelzen, sondern addieren.

Bei CSS gibt es collapsible margins, zumindest für vertikal angeordnete Block-Element.

Auf Delphi übertragen:

Nun möchte ich horizontal z.B. 3 Steuerelemente ausrichten die alle den gleichen Abstand zueinander haben. Dafür setze ich Margins.Left und Margins.Right auf jeweils 10 und aktiviere AlignWithMargins. Das funktioniert gut für die Ränder, also dort wo die Steuerelemente auf die Fensterränder treffen. Der Leerraum zwischen zwei benachbarten Steuerelementen (A und B) wird nun aber 20, da sich A.Margins.Right und B.Margins.Left addieren, anstatt zu 10 zu verschmelzen.

Man kann natürlich rumpfuschen, und nur Margins.Left auf 10 setzten (Margins.Right aber auf 0), und dann beim letzten Steuerelement in der Liste Margins.Right auf 10 setzen. Aber der Punkt ist dass die Ausrichtung automatisch funktionieren soll, auch wenn die Reihenfolge der Steuerelemente sich ändert.

Hat jemand einen Weg gefunden dass in der VCL zu erreichen?

Mein Ansatz war TMargins zu überschreiben (und dann den Steuerelementen zuzuweisen).

Aber wie findet man heraus was das benachbarte Steuerelement sein wird, während des Alignments?
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat