Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Programme Schriftvergrößert obwohl nicht aktiv (https://www.delphipraxis.net/193145-delphi-programme-schriftvergroessert-obwohl-nicht-aktiv.html)

stalkingwolf 26. Jun 2017 10:48

Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Ich habe bei einem Kunden ein Hewlett Packard Notebook und unsere Delphi Programme werden dort so angezeigt, als wäre die 125% Vergrößerung aktiv, was sie aber nicht ist. Ich habe auch einmal eine Routine geschrieben die das erkennt und eine Info ausgibt und diese springt auch nicht an.

Jemand schon einmal das gehabt und eine Lösung dafür?
Ich weiß nicht mal genau wo nach ich suchen muss im Netz :lol:

Bernhard Geyer 26. Jun 2017 12:09

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Zitat:

Zitat von stalkingwolf (Beitrag 1375347)
Ich habe auch einmal eine Routine geschrieben die das erkennt und eine Info ausgibt und diese springt auch nicht an.

Kannst du diese bereit stellen?
AFAIK haben wir das auch bei 1-2 Kunden und bin hier Planlos was der eigentliche Fehler ist.

stalkingwolf 26. Jun 2017 12:25

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Die Funktion sagt nur das im System die Schriftvergrößerung aktiv ist und das man dadurch das Programm evtl nicht korrekt bedienen kann.

Code:
// Überprüft ob die DPI Einstellung auf 96 sitzt. 96 ist die Normalegröße
// Bei allem darüber ist die Bildschirmvergrößerung aktiviert
function isFormSizeNormal:boolean;
var dc: hdc;
begin
    dc:= GetDC(0);
    Result:=(GetDeviceCaps(dc, LOGPIXELSX)=96);
    ReleaseDC(0, DC);
end;
da diese nicht anspringt bedeutet da die DPI auf 96 stehen müsste. Aber unsere Programm sehen aus wie bei 125%.
Schaltet man auf 125% dann ändert sich nichts. Es wird also nicht noch größer.

sko1 26. Jun 2017 13:09

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Ich bin mir nicht ganz sicher ob das Mist ist was ich schreibe, aber die dPI ist doch die Bildschirmauflösung und hat mit der eingestellten Schriftgröße wenig bis gar nichts zu tun?

Ciao
Stefan

stalkingwolf 26. Jun 2017 13:15

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Die Schriftvergrößerung im System verändert alles. GUI Elemente werden ebenfalls größer, aber nicht die Formgröße.
Es ist nicht nur das ändern von der Windows Schriftart von 10 auf 12.

Damit werden Elemente nach rechts und unten verschoben und sind evtl auf der Form nicht mehr sichtbar.

sko1 26. Jun 2017 13:54

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Zitat:

Die Schriftvergrößerung im System verändert alles. GUI Elemente werden ebenfalls größer, aber nicht die Formgröße.
Das ist mir klar, aber wird dabei auch das dPI des Monitors verändert?
Ich denke nein!

Ciao
Stefan

stalkingwolf 26. Jun 2017 13:57

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Das Problem hat aber NUR unser Delphi Programm. Alle andere Programme drumherum inkl Windows wird korrekt angezeigt.
Daher meine Frage wie man das lösen kann.

sko1 26. Jun 2017 14:23

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Ich habe eben mal Deinen Codeschnipsel hier eingebaut, mit Größe von Apps, Text und anderen Elementen auf 100% bekomme ich hier mit Deinem

Delphi-Quellcode:
GetDeviceCaps(dc, LOGPIXELSX)


120 dPI, was sich auch nicht ändert wenn ich dann auf 125% oder 150% hochgehe!

Ciao
Stefan

stalkingwolf 26. Jun 2017 14:31

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Ich hab 0 Plan worauf du hinaus willst und ich vermute es hat mit meinem ursprünglichen Problem auch nichts zu tun.
Mein Codeschnippsel soll nur ein Hinweis für uns und den Kunden sein, wenn er die Vergrößerung im System aktiviert hat.

sko1 26. Jun 2017 14:34

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Zitat:

Ich habe bei einem Kunden ein Hewlett Packard Notebook und unsere Delphi Programme werden dort so angezeigt, als wäre die 125% Vergrößerung aktiv, was sie aber nicht ist. Ich habe auch einmal eine Routine geschrieben die das erkennt und eine Info ausgibt und diese springt auch nicht an.
Ja richtig, aber auf meinem System würde die Meldung immer kommen (da 120 <> 96 dPI) egal ob ich 100%, 125% oder 150% Schrift-Vergrößerung eingestellt habe!

Und bei dem betroffenen Kunden wird es so sein dass der halt immer 96 dPI zurückliefert, egal ob 100%, 125% oder 150%!

Ciao
Stefan

Sherlock 26. Jun 2017 15:22

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
96 dpi ist nicht irgendein Standardwert. Wenn ein Monitor eine Diagonale von 10cm bei eine Auflösung von 1080p hat, dann hat er eine deutlich höhere dpi als 100cm bei 1080p. Und alles was dazwischen liegt weicht ebenso in der Regel von den 96 dpi ab.

Die Abfrage darauf ist meiner Meinung nach also grundlegend falsch.

Sherlock

Darlo 26. Jun 2017 15:27

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Zitat:

Zitat von Sherlock (Beitrag 1375382)
96 dpi ist nicht irgendein Standardwert. Wenn ein Monitor eine Diagonale von 10cm bei eine Auflösung von 1080p hat, dann hat er eine deutlich höhere dpi als 100cm bei 1080p. Und alles was dazwischen liegt weicht ebenso in der Regel von den 96 dpi ab.

Die Abfrage darauf ist meiner Meinung nach also grundlegend falsch.

Sherlock

Aber es geht doch darum was das OS mit dem Monitor macht, und nicht was die Hardware kann...

Sherlock 26. Jun 2017 15:30

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Das OS behält die native Auflösung und skaliert eventuell, sonst wird es ja unscharf bis kriminell hässlich. Was folgt ist: Die DPI bleiben, was sich ändert ist der Skalierungsfaktor (100%, 125% etc). In FMX gibt es: http://docwiki.embarcadero.com/Libra...DisplayMetrics

Da kann man dann alle Beteiligten abfragen. In VCL weiss ich das Pendant leider nicht auf die Schnelle.

Sherlock

bra 26. Jun 2017 15:36

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
96 dpi ist zwar meines Wissens die Standard-Einstellung bei Windows, die kann aber (vor allem bei Notebooks) abweichen, da die oft auch spezielle Auflösungen haben. Darum ist das pauschale Abfragen auf 96 dpi wohl wirklich keine gute Idee.

Wir hatten mit Delphi < Berlin ein Problem, dass Forms teilweise nicht korrekt skaliert wurden. Das ließ sich durch

Delphi-Quellcode:
ChangeScale(Screen.PixelsPerInch, 96);

im FormCreate beheben. Hilft das eventuell?

haentschman 26. Jun 2017 15:45

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Moin...:P
@stalkingwolf:
Ein Tipp für deine Funktion für die Anzeige der Auflösung. 8-)
Zitat:

Ja richtig, aber auf meinem System würde die Meldung immer kommen (da 120 <> 96 dPI) egal ob ich 100%, 125% oder 150% Schrift-Vergrößerung eingestellt habe!
Der neu eingestellte Wert ist erst nach dem Neustart von Windows eingestellt obwohl die Optik sich verändert hat.

siehe:
https://forum.delphi-treff.de/index....e-herausfinden
Zitat:

...
über diesen Link klappt es mit dem auslesen der % Schriftgrösse.
HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
Was ich nicht gemacht hatte ist, den PC nach der Umstellung neu zu starten.
Erst danach ist die Anzeige in der Registrie aktualisiert.
Folgende Werte konnte ich ermitteln:
100 % = 96,
125% = 120,
150% = 144,
175% = 168,
200% = 192.
...

stalkingwolf 26. Jun 2017 16:12

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Mir ist ehrlich gesagt die Funktion egal
Die hatte ich wegen Bernhard Geyer gepostet.

Mir geht es darum warum die Delphi Programme ( und nur die Delphi Programme ) falsch dargestellt werden und was ich dagegen unternehmen kann.

Uwe Raabe 26. Jun 2017 16:20

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Zitat:

Zitat von stalkingwolf (Beitrag 1375388)
Mir geht es darum warum die Delphi Programme ( und nur die Delphi Programme ) falsch dargestellt werden und was ich dagegen unternehmen kann.

Hast du mal versucht, das Scaled-Property des Forms auf False zu setzen?

bra 26. Jun 2017 16:24

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Um welche Delphi-Version geht es überhaupt? Hast du das von mir mal probiert?

Darlo 26. Jun 2017 22:18

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Zitat:

Zitat von Sherlock (Beitrag 1375384)
Das OS behält die native Auflösung und skaliert eventuell, sonst wird es ja unscharf bis kriminell hässlich. Was folgt ist: Die DPI bleiben, was sich ändert ist der Skalierungsfaktor (100%, 125% etc). In FMX gibt es: http://docwiki.embarcadero.com/Libra...DisplayMetrics

Da kann man dann alle Beteiligten abfragen. In VCL weiss ich das Pendant leider nicht auf die Schnelle.

Sherlock

Habe Kunden die auf einem 4k Monitor eine Auflösung von 1920 x 1080/1200 fahren. Ich mache die Skalierung stets von Hand und setze den Faktor entsprechend des Verhältnisses von Designtime und aktueller Fenstergröße. Dann wird das ganze ggf. im Form zentriert.

Bestehen die Probleme denn auch unter Windows 10?

hoika 26. Jun 2017 22:55

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Hallo,
Zitat:

Mir geht es darum warum die Delphi Programme ( und nur die Delphi Programme ) falsch dargestellt werden und was ich dagegen unternehmen kann.
Nun, das Manifest "Ich kann High-DPI selber" fehlt.

Bei High-DPI-Monitoren versucht Windows, die Anwendung selber hochzuskalieren,
wenn das Programm ihm nicht, per Manifest, sagt, dass es das selber kann.

Ändern würde ich das erst mal unter den Eigenschaften der Verknüpfung.

stalkingwolf 27. Jun 2017 08:19

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Ok danke. Werde ich testen, sobald der Kunde wieder erreichbar ist.

stalkingwolf 28. Jun 2017 08:59

AW: Delphi Programme Schriftvergrößert obwohl nicht aktiv
 
Ich habe einmal mit meinem Surface die Programm getestet und hier bin ich mir nicht sicher ob Windows 10 nicht das ganze regelt. Die Programme werden skaliert. Schriftarten sind dadurch etwas verwaschen, aber die Anzeige ist korrekt.
Öffne ich eine RDP Sitzung auf einen Windows 7 Rechner ist alles ultra klein, in der Registry stehen dann 96DPI. Lokal sind es 144DPI.

Nachtrag : ich habe dpiawarenessenabler ( http://techie007.3utilities.com/soft...renessenabler/ ) auf dem Surface installiert und die Delphi Programme hinzugefügt. Absolutes Chaos danach. Die Delphi Programm scheinen damit nicht klar zu kommen, wenn die Form Eigenschaft scaled auf TRUE sitzt. Schaltet man dies aus, dann werden die Programm korrekt angezeigt.

Zitat:

Zitat von bra (Beitrag 1375390)
Um welche Delphi-Version geht es überhaupt?

Delphi 6 und XE4 Programme.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 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