Hallo zusammen,
mein standard Notebook für die Entwicklung hat eine Full HD Auflösung Win10 Pro (Eigne Firma). Mein Kunden PC Power Notebook 4K Win10 Pro. Ein alter Linux Rechner 1366 x 768Pixel. Wie schafft man es mit Lazarus die GUI auf allen Rechnern gut aussehen zu lassen? Oder an welcher Bildschirmgröße orientiert ihr euch? So eine Art Responsive GUI dürfe ja ziemlich schwer sein.
Bin auf eure Antworten und Meinungen gespannt!
[Gelöst] GUI für verschiedene Betriebssysteme und Bildschirmauflösungen
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
[Gelöst] GUI für verschiedene Betriebssysteme und Bildschirmauflösungen
Zuletzt geändert von Levario am So 1. Mai 2022, 07:12, insgesamt 1-mal geändert.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
Re: GUI für verschiedene Betriebssysteme und Bildschirmauflösungen
Packe in OnCreate eine Limitierung der Formulargröße und berechne auch die Formular-Position entsprechend der Monitor-Größe (besonders hässlich sind Programme, bei denen die Formulare auf dem 2. Bildschirm entworfen worden sind). Beim Programmstart muss auf dem kleinsten Monitor alles vollständig sichtbar sein, und auf dem mit der größten Auflösung darf das Formular nicht zu einer Briefmarke schrumpfen.
Aktiviere in den Projekt-Optionen das "LCLScaling", auf Windows auch "DPI Awareness" auf "on" setzen. Damit passen sich alle Controls in ihrer Größe der Pixeldichte des Monitors an. In ImageListen mehrere Bildgrößen verwenden und ImageList.Scaled=true setzen, damit bei hoher Auflösung größere Bilder verwendet werden. (ich habe das mehrfach hier beschrieben -> Forums-Suche verwenden). Aber Achtung bei Fremdkomponenten: nicht überall wird das LCLScaling intern unterstützt.
Positioniere die Controls auf dem Formular nicht mit der Maus, sondern mit dem Anker-Editor, so dass sich die Controls zueinander automatisch ausrichten. Das ist besonders wichtig, wenn das Programm auf mehreren Plattformen und/oder mehreren Sprachen laufen soll, denn so vermeidest du Überraschungen mit sich überschneidenden Controls.
Aktiviere in den Projekt-Optionen das "LCLScaling", auf Windows auch "DPI Awareness" auf "on" setzen. Damit passen sich alle Controls in ihrer Größe der Pixeldichte des Monitors an. In ImageListen mehrere Bildgrößen verwenden und ImageList.Scaled=true setzen, damit bei hoher Auflösung größere Bilder verwendet werden. (ich habe das mehrfach hier beschrieben -> Forums-Suche verwenden). Aber Achtung bei Fremdkomponenten: nicht überall wird das LCLScaling intern unterstützt.
Positioniere die Controls auf dem Formular nicht mit der Maus, sondern mit dem Anker-Editor, so dass sich die Controls zueinander automatisch ausrichten. Das ist besonders wichtig, wenn das Programm auf mehreren Plattformen und/oder mehreren Sprachen laufen soll, denn so vermeidest du Überraschungen mit sich überschneidenden Controls.
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
Re: GUI für verschiedene Betriebssysteme und Bildschirmauflösungen
Vielen Dank ich werde es mal testen und alles anpassen. Das hat mir sehr geholfen.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).