Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Falsche Position von TEdit im Layout (Firemonkey) (https://www.delphipraxis.net/183808-falsche-position-von-tedit-im-layout-firemonkey.html)

eddie11 6. Feb 2015 09:16

Falsche Position von TEdit im Layout (Firemonkey)
 
Hi allerseits,

ich habe auf einer Form ein TLayout, (Height=40, Align=Top) und in diesem TLayout ein TEdit, das TEdit ist Align=Left.
Bei iOS wird die Höhe eines TEdits ja vom Style bestimmt und ist so automatisch 30 und kann nicht geändert werden.

Das TEdit sollte am linken Rand des Layouts(X-Position 0) in der Y-Position 5 erscheinen (Layout-Height abzüglich Edit-Heigt durch 2) - tut es aber nicht! Es erscheint im Simulator und auf dem Gerät in Position Y=0 des Layouts, also direkt am oberen Rand. Erst wenn man das Gerät bzw. den Simulator dreht, dann wird das TEdit in die richtige Position mittig verschoben. Das scheint der Resize-des Layouts zu sein, der das korrigiert.

Habt Ihr dieses Verhalten auch beobachtet? Und wenn ja, wie habt Ihr es abgestellt?

Daniel 6. Feb 2015 09:20

AW: Falsche Position von TEdit im Layout (Firemonkey)
 
Kannst Du die Eigenschaft "Margins.Top" auf den Wert 5 setzen und schauen, was passiert?
Die absolute Positionierung ist plattform-übergreifend eher unglücklich. Ich würde da - ähnlich wie bei HTML - mit Alignments und Margins arbeiten.

eddie11 6. Feb 2015 09:37

AW: Falsche Position von TEdit im Layout (Firemonkey)
 
Zitat:

Zitat von Daniel (Beitrag 1288972)
Kannst Du die Eigenschaft "Margins.Top" auf den Wert 5 setzen und schauen, was passiert?
Die absolute Positionierung ist plattform-übergreifend eher unglücklich. Ich würde da - ähnlich wie bei HTML - mit Alignments und Margins arbeiten.

Ich habe keine absolute Positionierung, das Layout ist Align=Top und des TEdit ist Align=Left.

Margins.Top=5 sieht zuerst mal gut aus, das TEdit erscheint da wo ich es erwarte - aber: wenn ich das Gerät jetzt drehe, dann rutscht das TEdit weiter runter in Position 10. Ich muss Margins.Top und Margins.Bottom beide auf 5 setzen, dann sieht es gut aus. Aber eigentlich will ich das ja nicht so, denn wenn ich jetzt nämlich das Layout in der Höhe ändere, dann muss ich auch an diese Margins denken :(.

Ich habe inzwischen herausgefunden, dass ich mit
Delphi-Quellcode:
Layout1.RecalcSize
die Position korrigieren kann ohne das Gerät drehen zu müssen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz