![]() |
Formulare in hohen DPI korrekt anzeigen
Ich habe eben mehr oder weniger durch Zufall wie Prozedur
Delphi-Quellcode:
gefunden.
Formular.ScaleBy(Screen.PixelsPerInch, 96);
// Ich habe die auch direkt ausgetestet und meine auf ein Win7 mit DPI 125% gespeichert. Die Anwendung ist tatsächlich größer. Generell ist alles größer geau wie erwartet. Jetzt aber die Frage. Ist das eine absolute Quick & Dirty-Lösung oder kann man sie ruhig so verwenden? Denn ich habe keine Lust jedes Label, jedes Edit usw auf DPI X anzupassen. |
AW: Formulare in hohen DPI korrekt anzeigen
Eigentlich machen die VCL-Formulare das von selbst.
In den Formularen (DFM) werden die DPI des Entwicklungsrechners gespeichert (da, wo die DFM zuletzt gespeichert wurde) und beim Laden der Form, wird es automatisch angepasst. (wenn bei beiden Windows die DPI ordentlich eingestellt waren, bzw. was der Benutzer eingestellt hat > Systemsteuerung\Darstellung und Anpassung\Anzeige) ![]() ![]() |
AW: Formulare in hohen DPI korrekt anzeigen
Ich habe Scaled auf False gestellt und das überall.
Ich meine eigentlich das Aussehen der fertigen Exe-Datei, nicht das Formular in der IDE. |
AW: Formulare in hohen DPI korrekt anzeigen
Genau das macht Scaled=True.
Erst beim Start der fertigen EXE, aber auch beim Laden in der IDE. Es werden die aktuellen DPI genommen, mit den in der DFM gespeicherten DPI verrechnet und die Form entsprechend skaliert. |
AW: Formulare in hohen DPI korrekt anzeigen
Ok das mit der IDE wusste ich nicht.
Dann gehe ich einfach mal davon aus, dass ich nicht drum herum komme hier und da Anpassungen vorzunehmen, damit es bei jeder DPI gleich aussieht, oder? |
AW: Formulare in hohen DPI korrekt anzeigen
Zitat:
Delphi-Quellcode:
Weitere Anpassungen waren eigentlich nicht nötig, kommt natürlich immer bisschen auf den GUI-Aufbau drauf an.
Formular.ScaleBy(Screen.PixelsPerInch, 96);
|
AW: Formulare in hohen DPI korrekt anzeigen
Bei mir leider schon. Speziell da, wo ich Konstrukte benutze wie...
DAS_IST_EIN_LABEL---[EDIT_FELD]---_TEXT Sprich: Label mit vielen Leerzeichen, um ein Edit reinzusetzen. Das klappt mit normaler DPI wunderbar, aber ich muss es nun umändern, damit ich bald hohe DPI unterstützen kann. |
AW: Formulare in hohen DPI korrekt anzeigen
Dann nimm folgenden Aufbau:
[Panel] ->[Label Align Left]"Das ist ein..."[/Label] ->[Edit Align Left] ->[Label Align Left]"Apfelbaum."[/Label] [/Panel] Hoffe Du verstehst was ich meine. |
AW: Formulare in hohen DPI korrekt anzeigen
Ja verstehe ich.
Und das funktioniert? Weil meine Anwendung ist auch mehrsprachig. |
AW: Formulare in hohen DPI korrekt anzeigen
Ich arbeite seit XE2 was GUIs ausschließlich mit Firemonkey. Da nehme ich anstatt des Panels ein TLayout und arbeite durchgängig nach diesem Prinzip. Die Skalierung funktioniert fehlerfrei von Android über iOS (Retina und non Retina )bis Windows-Rechner mit diversen DPI-Einstellungen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz