Desktop DPI

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Desktop DPI

Beitrag von Wolfgang Ciriack »

Wo ich gerade den Beitrag über Desktop DPI gelesen habe.
Gibt es bei eXPress++ eigentlich die Möglichkeit, den Skalierungsfaktor automatisch (global) für Dialoge und Controls zu setzen, wenn größere Fonts eingestellt sind ?
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Desktop DPI

Beitrag von Tom »

Hallo, Wolfgang.

Bislang gibt es keine DPI-Funktionen in eXpress++.

Die Option SCALEFACTOR für DCGET OPTIONS hat jedoch den Parameter "Automatic Font Scaling" (5. Position im Array). Dieser entscheidet darüber, ob nur die Größe und Position aller Controls angepasst wird und/oder ob auch die Schriften größer- oder kleinergerechnet werden. Ist er auf ".T.", vergrößern sich also alle Controls z.B. bei einem gewählten Faktor von 1,5 (aus "10.Arial" würde "15.Arial" werden), steht er auf ".F.", wird zwar ein Dialog oder eine Schaltfläche größer, aber der Font bleibt auf "10.Arial".

Damit kannst Du jetzt also spielen: Du stellst fest, dass z.B. mit 125 Prozent Auflösung gearbeitet wird. Daraus folgt ein Scalefactor von 1,25, aber das Font Scaling bleibt auf .F. Im Ergebnis werden alle Elemente größer, aber die - nun größeren - Schriftarten passen hinein. Wenn Font Scaling auf .T. gesetzt wird, wachsen die Schaltflächen in geringerem Maß.

Um all das zu umgehen, prüfe ich über die hier mehrfach erwähnten Funktionen das DPI-Verhältnis und rechne dann einfach intern alle Schriftgrößen um. Sämtliche verwendeten Schriften befinden sich in einem Array (Größe und Name). Wird mit einem höheren Prozentwert gearbeitet, werden Schriftgrößen heruntergerechnet. Wird zugleich das Scaling verwendet, steht Font Scaling auf .T., so dass sich die (geänderten) Schriften der Zeichenfläche anpassen. Das funktioniert überwiegend reibungslos, nur bei bestimmten Schriftgrößen muss man etwas aufpassen.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Desktop DPI

Beitrag von AUGE_OHR »

Wolfgang Ciriack hat geschrieben:Wo ich gerade den Beitrag über Desktop DPI gelesen habe.
meinst du jetzt DPI-Aware ?

du gehst jetzt von einem Scale Faktor aus was sich nach der Bildschirm Grösse und Windows "Vergrößerung" (125%, 150%) richten soll.
wie uns Till auf der JHV 2013 gezeigt hat ist das aber nicht DPI-Aware denn da bleibt die Grösse ( in cm ) immer gleich.
man benötigt also noch im XP Manifest einen Eintrag

Code: Alles auswählen

<asmv3:application  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>
siehe auch http://msdn.microsoft.com/en-us/library ... 85%29.aspx
gruss by OHR
Jimmy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Desktop DPI

Beitrag von Wolfgang Ciriack »

Danke für die Hinweise, da werde ich mal ein bischen "rumspielen" müssen.
Viele Grüße
Wolfgang
Antworten