Hallo,
ich möchte ein paar Labels und ein paar Editfelder automatisch in einer Tabelle ausrichten. Das Ergebnis soll in etwa so aussehen:
Es gibt zwei Spalten: Links sind die Labels und Rechts die Edits. Die Spalte der Labels soll möglichst klein sein (die Labels sollen da gerade so reinpassen) und die rechte Spalte soll maximale Breite haben.
Da ich nicht weiß, wie breit die Labels im Endeffekt sind (unterschiedlicher, zur Laufzeit erst verfügbarer Text), soll das ganze möglichst automatisch von Statten gehen. Soviel wie ich bisher herausfinden konnte, kann TWinControl.ChildSizing irgendwie so etwas machen.
Meine Frage wäre jetzt: Was muss ich wo einstellen? Oder wäre es einfacher alles selbst zu berechnen und zu positionieren?
ChildSizing
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
ChildSizing
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: ChildSizing
Canvas.TextWidth ist eine Information, aber besser wird es sein, DrawText in Verbindung mit DT_CALCRECT zu nutzen. Dann gäbe es auch Wraping.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: ChildSizing
Das einfachste währe du würdest eine Grid komponente nehmen. Oder z.b. eine ListView Komponente, die sollte sowas auch können.
Wenn du sowas selbst machen, möchtest: Es ist relativ einfach. Wenn die Ziele nicht so hoch gesteckt werden.
Du müsstest nur eine Objekt Struktur haben, mit der du die Tabelle "Zeichnen und verwalten" kannst.
Wenn du sowas selbst machen, möchtest: Es ist relativ einfach. Wenn die Ziele nicht so hoch gesteckt werden.
Du müsstest nur eine Objekt Struktur haben, mit der du die Tabelle "Zeichnen und verwalten" kannst.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 588
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: ChildSizing
Mehrere Möglichkeiten.
Klar ist das die alle autosize brauchen.
Du kannst eine Panel mit align alLeft in die Form legen, dann alle Labels in den Panel, der Panel ist dann automatisch (via autosize) so gros wie der grösste Label.
Oder du schaust dir den "Anchor Editor" mal genauer an. Da der allerdings nicht zirkular arbeitet müsstest du das breiteste Element wissen.
Klar ist das die alle autosize brauchen.
Du kannst eine Panel mit align alLeft in die Form legen, dann alle Labels in den Panel, der Panel ist dann automatisch (via autosize) so gros wie der grösste Label.
Oder du schaust dir den "Anchor Editor" mal genauer an. Da der allerdings nicht zirkular arbeitet müsstest du das breiteste Element wissen.