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 ?
Desktop DPI
Moderator: Moderatoren
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Desktop DPI
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.
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
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12910
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Desktop DPI
meinst du jetzt DPI-Aware ?Wolfgang Ciriack hat geschrieben:Wo ich gerade den Beitrag über Desktop DPI gelesen habe.
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>
gruss by OHR
Jimmy
Jimmy
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Desktop DPI
Danke für die Hinweise, da werde ich mal ein bischen "rumspielen" müssen.
Viele Grüße
Wolfgang
Wolfgang