AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Formulare in hohen DPI korrekt anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Formulare in hohen DPI korrekt anzeigen

Ein Thema von Jim Carrey · begonnen am 19. Okt 2016 · letzter Beitrag vom 21. Okt 2016
Antwort Antwort
Seite 1 von 3  1 23      
Jim Carrey
(Gast)

n/a Beiträge
 
#1

Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 16:21
Ich habe eben mehr oder weniger durch Zufall wie Prozedur
Delphi-Quellcode:
Formular.ScaleBy(Screen.PixelsPerInch, 96);
//
gefunden.

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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#2

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 16:33
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)

Delphi-Referenz durchsuchenTForm.PixelsPerInch
Delphi-Referenz durchsuchenTForm.Scaled
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#3

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 16:38
Ich habe Scaled auf False gestellt und das überall.

Ich meine eigentlich das Aussehen der fertigen Exe-Datei, nicht das Formular in der IDE.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#4

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 17:57
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#5

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 18:41
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?
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 20:03
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?
VCL ist bei mir ein bisschen her Aber soweit ich mich erinnere hatte ich immer Form.Scaled auf false und mit der von dir bereits genannten Codezeile gearbeitet
Formular.ScaleBy(Screen.PixelsPerInch, 96); Weitere Anpassungen waren eigentlich nicht nötig, kommt natürlich immer bisschen auf den GUI-Aufbau drauf an.
Philip
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#7

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 20:07
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.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 20:10
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.
Philip
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#9

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 20:13
Ja verstehe ich.
Und das funktioniert?

Weil meine Anwendung ist auch mehrsprachig.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#10

AW: Formulare in hohen DPI korrekt anzeigen

  Alt 19. Okt 2016, 20:17
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.
Philip
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz