Panel, Anker und andere Widrigkeiten...

Rund um die LCL und andere Komponenten
Antworten
Joh
Lazarusforum e. V.
Beiträge: 312
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Panel, Anker und andere Widrigkeiten...

Beitrag von Joh »

gegeben: eine Form mit folgendem Aufbau:
Panels.png
Panels.png (23.66 KiB) 247 mal betrachtet
oben ein Panel,
darunter ein größeres (blaues Panel; Panel2).
Wenn die Form verkleinert wird, soll das untere Panel seine Höhe behalten, das obere vergrößert/verkleinert werden.
So weit ok.

Zwischen dem Grid und dem Panel3 liegt auf Panel2 ein Splitter.
Wenn dieser Splitter verschoben wird, soll das Grid vergrößert / verkleinert werden.
Auch das passt.
Aber Panel3 soll seine Höhe behalten und die Form und Panel2 dadurch wiederum vergrößert/verkleinert werden.

Alles, was ich bisher versucht habe, ließ die Höhe von Panel3 gleich bleiben...

Geht das überhaupt mit Standard-Ankern?
Oder wäre das wiederum rekursiv, weil ich die Form-Höhe verändere und dadurch die Höhe von Panel1 angepaßt wird?
just my two Beer

Benutzeravatar
Zvoni
Beiträge: 417
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Panel, Anker und andere Widrigkeiten...

Beitrag von Zvoni »

Anbei.
Achte auf die Constraints (MinHeight und MinWidth) für Panel 2
PanelSplitter.zip
(2.71 KiB) 133-mal heruntergeladen
Aber nicht wirklich durchgetestet.
Oder ich habs falsch verstanden.
Wenn Panel3 auch seine Grösse beibehalten soll: MinWidth/MinHeight auch bei dem. rumspielen
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

schoschy
Beiträge: 59
Registriert: Di 18. Okt 2022, 15:46

Re: Panel, Anker und andere Widrigkeiten...

Beitrag von schoschy »

ich verstehe das richtig?

beide Funktionen sollen die größe der Form anpassen.
Form größe ändern, P1 ändert sich mit.
Splitter herumschieben, P1 bleibt gleich, P2 und Form ändern sich?

E:
oder anders gesagt,
P1 wird über die Form geändert, das Grid über den Splitter, P3 bleibt immer gleich?

Joh
Lazarusforum e. V.
Beiträge: 312
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Panel, Anker und andere Widrigkeiten...

Beitrag von Joh »

schoschy hat geschrieben: Mi 16. Jul 2025, 08:38 ich verstehe das richtig?

beide Funktionen sollen die größe der Form anpassen.
Form größe ändern, P1 ändert sich mit.
Splitter herumschieben, P1 bleibt gleich, P2 und Form ändern sich?

E:
oder anders gesagt,
P1 wird über die Form geändert, das Grid über den Splitter, P3 bleibt immer gleich?
genau: beim ändern der Form wird P1 verkleinert (da ist auch ein Grid -zum Suchen- drin)
über den Splitter soll das Grid verkleinert werden und P3 nach oben geschoben werden.
Da P3 eine feste Höhe hat, soll gleichzeitig die Form verkleinert werden.

Mit MinHeight und MinWidth habe ich schon rumproBierT. Aber ohne positives Ergebnis.
Das Beispiel von Zvoni gucke ich mir gleich mal an...
just my two Beer

Joh
Lazarusforum e. V.
Beiträge: 312
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Panel, Anker und andere Widrigkeiten...

Beitrag von Joh »

Zvoni hat geschrieben: Mi 16. Jul 2025, 08:24 Anbei.
Achte auf die Constraints (MinHeight und MinWidth) für Panel 2PanelSplitter.zip
Aber nicht wirklich durchgetestet.
Oder ich habs falsch verstanden.
Wenn Panel3 auch seine Grösse beibehalten soll: MinWidth/MinHeight auch bei dem. rumspielen
genau da liegt mein Problem: Panel 3 soll eine fixe Höhe haben und damit die Form verkleinern.
just my two Beer

schoschy
Beiträge: 59
Registriert: Di 18. Okt 2022, 15:46

Re: Panel, Anker und andere Widrigkeiten...

Beitrag von schoschy »

Joh hat geschrieben: Mi 16. Jul 2025, 09:00 genau: beim ändern der Form wird P1 verkleinert (da ist auch ein Grid -zum Suchen- drin)
über den Splitter soll das Grid verkleinert werden und P3 nach oben geschoben werden.
Da P3 eine feste Höhe hat, soll gleichzeitig die Form verkleinert werden.

Mit MinHeight und MinWidth habe ich schon rumproBierT. Aber ohne positives Ergebnis.
Das Beispiel von Zvoni gucke ich mir gleich mal an...
sollte man mMn. über in code machen.
du kannst den splitter sonst hinter P1 schieben und nicht mehr anzeigen.
min p1 + min grid + p3 ~ minimale Formhöhe

geht eventuell auch in Lazarus selbst, aber ich bin da jeweils raus.

Benutzeravatar
theo
Beiträge: 10949
Registriert: Mo 11. Sep 2006, 19:01

Re: Panel, Anker und andere Widrigkeiten...

Beitrag von theo »

Kleine Klugscheisserei am Rande:
Englisch - Deutsch
"Form" = "Formular"
"Shape" = "Form"

Eine Instanz von TForm heisst also auf Deutsch nicht "die Form" sondern "das Formular". :wink:
TShape gibt es auch, das ist aber kein Formular.
Die Verwendung des Begriffs "die Form" statt "das Formular" könnte z.B. mit Übersetzungstools zu Missverständnissen führen.

"Ich habe eine Form mit einer Shape drauf." -> "I have a shape with a shape on it."

Benutzeravatar
Zvoni
Beiträge: 417
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Panel, Anker und andere Widrigkeiten...

Beitrag von Zvoni »

schoschy hat geschrieben: Mi 16. Jul 2025, 09:06
Joh hat geschrieben: Mi 16. Jul 2025, 09:00 genau: beim ändern der Form wird P1 verkleinert (da ist auch ein Grid -zum Suchen- drin)
über den Splitter soll das Grid verkleinert werden und P3 nach oben geschoben werden.
Da P3 eine feste Höhe hat, soll gleichzeitig die Form verkleinert werden.

Mit MinHeight und MinWidth habe ich schon rumproBierT. Aber ohne positives Ergebnis.
Das Beispiel von Zvoni gucke ich mir gleich mal an...
sollte man mMn. über in code machen.
du kannst den splitter sonst hinter P1 schieben und nicht mehr anzeigen.
min p1 + min grid + p3 ~ minimale Formhöhe

geht eventuell auch in Lazarus selbst, aber ich bin da jeweils raus.
Korrekt.
Im Prinzip musst du das Event für den Splitter finden, wenn du ihn bewegst
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Antworten