Verankern von GUI-Komponenten in FireMonkey

7

Ich habe gerade mit dem Testen von FireMonkey begonnen und kann keine Möglichkeit finden, dynamisch große / positionierte Komponenten zu erstellen.

VCL hatte die Anchor-Eigenschaft, FM nicht.

Jeder sieht etwas, was ich vermisst habe

Aktualisierung:

Einfache Verankerung ist in FM nicht verfügbar. Sie müssen TLayouts erstellen und diese ausrichten und dann die Steuerelemente in das Panel einfügen, damit sie "haften". Wenn Sie eine ältere Version von Builder oder Delphi verwendet haben, ist dies das gleiche wie früher mit TPanels.

    
Gregor Brandt 02.09.2011, 15:22
quelle

5 Antworten

11

Dies ist die Antwort auf Ihre Frage. Die Anker-Eigenschaft in VCL wurde anscheinend durch Margins und Padding ersetzt (aufgrund von Performance-Überlegungen) und ich fand eine Dokumentation im XE2-Wiki ( Ссылка ). Ich bezweifle, dass Anker zu einem späteren Zeitpunkt eingesetzt werden. Um zwei Schaltflächen (OK und Abbrechen) am unteren Rand eines Formulars auf der rechten Seite zu verankern, gehen Sie wie folgt vor. Sehen Sie die folgenden Bilder für die OK- und Abbrechen-Schaltfläche.

Platzieren Sie ein kleines Feld, das an der Unterseite des Formulars ausgerichtet ist, sagen Sie ungefähr 40 Höhe. Stellen Sie die "Ränder" auf der unteren Seite ein, um einen kleineren Bereich zu erstellen, in dem die Schaltflächen angezeigt werden. Stellen Sie sicher, dass Sie die Schaltfläche auf alRight ausrichten. Zum Beispiel hat die Lücke zwischen der rechten Kante des Formulars und der Schaltfläche ganz rechts einen Rand von 15. Die oberen und unteren Ränder wurden auf 12 gesetzt. Das verankert die Schaltfläche ganz rechts.

'Padding' ist das Gegenteil von einem Rand, das Padding setzt den Platz außerhalb des Steuerelements. Auf der rechten Seite der Schaltfläche habe ich der linken Seite eine Auffüllung von 20 hinzugefügt, dies ist der Abstand zwischen den beiden Schaltflächen. Für die zweite Schaltfläche links von der ersten müssen wir nur die align -Eigenschaft auf alRight setzen, ohne das Padding oder die Ränder anzupassen.

    
rhody 02.09.2011, 17:24
quelle
7

Löschen Sie mehrere TLayout-Komponenten im Formular und konfigurieren Sie ihre Ausrichtungseigenschaften wie gewünscht. Lasse andere Komponenten in diese Layouts fallen und setze ihre Ausrichtungseigenschaften relativ zu dem TLayout, in dem sie enthalten sind. Scheint, für mich zu arbeiten ...

    
Bob A 02.09.2011 16:37
quelle
5

Hier ist die Antwort, nach der Sie suchen: FMX-Steuerungen haben keine Anker.

Ich stelle mir vor, dass dies eine "nächste Version" sein wird.

    
Nick Hodges 02.09.2011 15:34
quelle
1

Ein kurzer Blick auf die Eigenschaft align zeigt viel mehr Möglichkeiten als in früheren Delphi-Versionen:

Löst das nicht Ihr Problem (zumindest teilweise).
Ich erinnere mich, dass ich lange Zeit OK hatte, indem ich nur verschachtelte panel s und align zu Layouterzeugnissen verwendete.

    
Johan 02.09.2011 17:17
quelle
0

Sie können LiveBindings und Ausdrücke verwenden, um die Eigenschaften Ihres Steuerelements basierend auf dem übergeordneten Steuerelement festzulegen, obwohl dies eine Menge Arbeit bedeutet.

Ansonsten verwenden Sie Margins und Padding (wie HTML / CSS).

    
Marcus Adams 03.10.2011 22:28
quelle