[erledigt] Verschiedene Formulare für eine Unit

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Flenser
Beiträge: 24
Registriert: Di 28. Okt 2014, 12:49

[erledigt] Verschiedene Formulare für eine Unit

Beitrag von Flenser »

Ich hab hier eine kleines Programm mit Haupt- und "Unter"fenstern, die alle auf Full-HD Auflösung angepasst sind.

Jetzt sollte ich "schnell" das Programm bei jemanden einrichten, der mit einem Bildschirm 1280x1024 arbeitet. Jetzt könnte man
natürlich programmintern die Formulargröße anpassen und die Komponenten im Verhältnis der Auflösungen verkleinern und
verschieben, wäre da nicht die Änderung des Seitenverhältnisses und der Zeitaufwand...

Gibt es eine (einfache) Möglichkeit, in Abhängigkeit der Auflösung ein anderes Formular zu laden (was ich schnell händisch angepasst habe)?
Zuletzt geändert von Flenser am Do 22. Aug 2019, 14:10, insgesamt 1-mal geändert.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Verschiedene Formulare für eine Unit

Beitrag von Warf »

Nich das ich wüsste.

Genau dafür gibt es die Eigenschaften Anchros und Align.
Ich designe meine Formulare immer so. Zu erst teile ich es in Sektionen auf. Beispiel Chat-client. Ich würde Links oder Rechts einen Abschnitt mit den Kontakten machen, also Panel -> Bevel=None, Align = alRight, Caption='' Da drin würde ich dann über einen ListView oder eine Selbstgezeichnete Listenkomponente die Kontakte haben (was dann auf alCenter steht um das ganze panel auszufüllen). Um es größer und kleiner zur laufzeit machen zu können würde ich dann noch einen Splitter hinzufügen, der kümmert sich darum das der user zur laufzeit das per drag & drop größer und kleiner ziehen kann (Ohne eine einzige zeile Code!).
Oben hätte ich dann einstellungen, Wie eigenes Profil, Status, und Konfig button. Dafür wieder Panel: Bevel=None, Align = alTop, Caption='', wobei dann Buttons darin mit Alignment Rechts oder Links, oder Durch anchors positioniert werden sodass die ihre relative position behalten.

In der Mitte hätte ich dann den Main view, wo die nachrichten drin stehen, z.b. über ein Tab Control: AlClient. Das ist dann wieder aufgeteilt in einen Unteren bereich, die MessageBox (Edit) mit Align alBottom. Über einen weiteren Splitter kann man auch diese größe einstellen. Dann über dem Edit ist das eigentliche Nachrichtenfenster über alClient.

Und zack, die anwendung sieht auf jeder Auflösung gut aus, und ist etwas zu klein kann der User einfach über splitter es größer und kleiner Ziehen.

Wenn du Formularinhalte brauchst, wie edits, setze sie an die korrekte position und benutze anchors um die in der Breite anzupassen. Wenn du zu viele brauchst sodass du nicht garantieren kannst das sie alle hinpassen benutz ne Scrollbox.

Was ich dann noch mache ist einen Config file zu schreiben mit der aktuellen größe die mit den Splittern eingestellt wurden (im form close einfach dann in eine xml oder ini datei die Width/height von den panels schreiben, und beim FormCreate laden), und tada, jeder user kann es sich einstellen wie er will, und beim neustart bleiben die änderungen erhalten

Flenser
Beiträge: 24
Registriert: Di 28. Okt 2014, 12:49

Re: [erledigt] Verschiedene Formulare für eine Unit

Beitrag von Flenser »

Danke, das hab ich mir schon gedacht...

Antworten