Denkansatz dynamische Größenanpassung
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Denkansatz dynamische Größenanpassung
Ich wollte mal nachhaken, wie andere die Größenanpassung bei Formularen gestalten.
Ich weiß, es gibt praktische Dinge wie Algin und BorderSpacing, aber das alles nützt ja nicht ohne weiteres was, wenn die Komponenten quasi Schachbrettartig angeordnet sind. Da langt ja ein bloßes Align nicht.
Mein Weg dabei ist es...mit relativ vielen Panels das Formular in Zeilen/Spalten aufzuteilen.
Diese Panels formatieren sich dann über Align weitgehend selbst.
Anschließend formatiere ich noch die Labels innerhalb der Pannels, da beispielsweise innerhalb eines Pannels zwei Zeilen mit je vier Labels sind, von Hand. Beispielsweise so, das jedes Label exakt den selben abstand hat.
Nur als Denkanstoß, gibt es eine elegantere Methode als Dutzende Panels und zusätzlich noch eine Resize-Procedure die den Rest berechnet?
Und wie wirken sich die ganzen ja letztlich unsichtbaren Panels zur Laufzeit aus? Ich geh davon aus, das sie keinen großen Einfluss auf Performance u.a. haben, wenn sie einmal verechnet wurden. Wenn ich mich da Ihre, bitte berichtigen.
Falls jemand fragt, wozu das ganze...die Form hat 200 Objekte.
Ich weiß, es gibt praktische Dinge wie Algin und BorderSpacing, aber das alles nützt ja nicht ohne weiteres was, wenn die Komponenten quasi Schachbrettartig angeordnet sind. Da langt ja ein bloßes Align nicht.
Mein Weg dabei ist es...mit relativ vielen Panels das Formular in Zeilen/Spalten aufzuteilen.
Diese Panels formatieren sich dann über Align weitgehend selbst.
Anschließend formatiere ich noch die Labels innerhalb der Pannels, da beispielsweise innerhalb eines Pannels zwei Zeilen mit je vier Labels sind, von Hand. Beispielsweise so, das jedes Label exakt den selben abstand hat.
Nur als Denkanstoß, gibt es eine elegantere Methode als Dutzende Panels und zusätzlich noch eine Resize-Procedure die den Rest berechnet?
Und wie wirken sich die ganzen ja letztlich unsichtbaren Panels zur Laufzeit aus? Ich geh davon aus, das sie keinen großen Einfluss auf Performance u.a. haben, wenn sie einmal verechnet wurden. Wenn ich mich da Ihre, bitte berichtigen.
Falls jemand fragt, wozu das ganze...die Form hat 200 Objekte.
Johannes
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Habs mir gerade nochmal angeschaut, endlich hab ich auch mitbekommen, das man alle vier auf treu setzen muss, und es wird wunderbar vergrößert.
ABER: wenn ich das ganze für nen Label mache, und dummerweise hab ich hauptsächlich Labels, dann vergrößert sich die Labelfläche, aber der Textanfang rückt beispielsweise nicht weiter in die Mitte.
Es geht mir ja auch darum, das alles wieder symetrisch verteilt ist und jedes Label beispielsweise gleich breit. Dabei muss sich ja aber auch der Anfangspunkt verschieben.
Letztlich müsste also irgendwie die Ecke mitberechnet werden.
ABER: wenn ich das ganze für nen Label mache, und dummerweise hab ich hauptsächlich Labels, dann vergrößert sich die Labelfläche, aber der Textanfang rückt beispielsweise nicht weiter in die Mitte.
Es geht mir ja auch darum, das alles wieder symetrisch verteilt ist und jedes Label beispielsweise gleich breit. Dabei muss sich ja aber auch der Anfangspunkt verschieben.
Letztlich müsste also irgendwie die Ecke mitberechnet werden.
Johannes
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Genau das machen die Anchors sowas muss man nicht selbst machen.
http://wiki.lazarus.freepascal.org/Anchor_Sides/de
Ansicht->Anchor Editor
http://wiki.lazarus.freepascal.org/Anchor_Sides/de
Ansicht->Anchor Editor
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Nein, weil sich nur die obere rechte Ecke dynamisch verschieben und ausrichten müsste. Die Anchors aber verschieben immer nur so, das entweder der Abstand zu einem der Ränder identisch bleibt bzw. Die Labelflache dynamisch vergrößert wird.
Aber ich will die Fläche ja nicht vergrößern und den Abstand zu einer Seite ja gerade dynamisch vergrößern.
Aber ich will die Fläche ja nicht vergrößern und den Abstand zu einer Seite ja gerade dynamisch vergrößern.
Johannes
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Du hast dir den AnchorEditor nicht angeschaut stimmts ? Dort kannst du für Jede Seite eines Controls eigene Controls festlegen auf die es sich beziehen soll. Eigentlich haben die Anchors viel mehr Einstellungen als im OI wahrscheinlich wollte man den OI damit nicht überladen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/