Matthias Hanft
2017-08-24 08:32:54 UTC
Hallo,
ich verwende Delphi 7 (professional). Das funktioniert eigentlich auch unter
Windows 10 noch ganz prima. In letzter Zeit melden mir allerdings einige An-
wender, dass eine bestimmte Form nicht richtig funktioniert: Da sind Panels
mit Splitter drauf und da drin PageControls mit TabSheets und unten ein Ok-
und Abbrechen-Button. Eigentlich nix besonderes. Die Anchors habe ich so
gemacht, dass bei einer Größenänderung der Form alles entsprechend mitwächst
bzw. -schrumpft.
Das funktioniert bei mir auf Windows 7 und Windows 10 (auf einem 1920x1200-
Bildschirm, aber auch bei anderen Auflösungen - ich habe alle PCs und Bild-
schirme getestet, die ich hier habe).
Nun schreiben mir aber einige Anwender (und schicken auch Screenshots mit),
dass das Fenster z.B. "zu wenig hoch" ist und dadurch unten die beiden Buttons
nicht erreichbar seien. Oder der senkrechte Splitter ist und bleibt so weit
rechts, dass man an das rechte Panel gar nicht herankommt. Auch eine Größen-
änderung des gesamten Fensters hilft nichts; das bleibt so seltsam verzerrt.
Ich kann das hier nicht wirklich nachvollziehen; sowohl in der IDE als auch
standalone funktioniert das hier alles.
Allerdings habe ich inzwischen herausgefunden, dass man in den "Eigenschaften"
des EXE (oder der Verknüpfung) unter "Kompatibilität" unter "Einstellungen"
den Punkt "Verhalten bei hoher DPI-Skalierung überschreiben. Skalierung
durchgeführt von:" ankreuzen und dann von "Anwendung" auf "System" umstellen
kann. Dann scheint es bei den betroffenen Anwendern zu funktionieren.
Leider gibt es diese Auswahl nur unter Windows 10. Unter Windows 7 gibt es
nur "Skalierung bei hohem DPI-Wert deaktivieren", aber da weiß ich nicht,
ob das hilft; da warte ich noch auf Rückmeldung von dem betreffenden An-
wender. Der hat laut Programm-Debug-Ausgaben Screen.Width=1280, Screen.
Height=1024 und Screen.PixelsPerInch=120. So eine geringe Auflösung mit
so einem hohen DPI-Wert kommt mir irgendwie seltsam vor?!
Wobei das natürlich nur die zweitbeste Lösung ist, wenn ich dem Anwender
sagen muss, dass er in den Programmeigenschaften etwas umstellen soll (und
viele können das bzw. finden diesen Punkt auch gar nicht) - und es hilft
auch nicht immer.
Kann ich da im Programm irgendwas besser machen? An der Form selbst habe
ich nichts geändert, die hat im Objektinspektor die Defaultwerte Scaled=
True und PixelsPerInch=96. Und bei 99% der Anwender funktioniert das auch.
(Nicht dass ich jetzt was ändere, damit es bei den restlichen 1% klappt,
aber bei den 99% nicht mehr!)
Hat irgendjemand einen Tipp parat?
Danke & Gruß Matthias.
ich verwende Delphi 7 (professional). Das funktioniert eigentlich auch unter
Windows 10 noch ganz prima. In letzter Zeit melden mir allerdings einige An-
wender, dass eine bestimmte Form nicht richtig funktioniert: Da sind Panels
mit Splitter drauf und da drin PageControls mit TabSheets und unten ein Ok-
und Abbrechen-Button. Eigentlich nix besonderes. Die Anchors habe ich so
gemacht, dass bei einer Größenänderung der Form alles entsprechend mitwächst
bzw. -schrumpft.
Das funktioniert bei mir auf Windows 7 und Windows 10 (auf einem 1920x1200-
Bildschirm, aber auch bei anderen Auflösungen - ich habe alle PCs und Bild-
schirme getestet, die ich hier habe).
Nun schreiben mir aber einige Anwender (und schicken auch Screenshots mit),
dass das Fenster z.B. "zu wenig hoch" ist und dadurch unten die beiden Buttons
nicht erreichbar seien. Oder der senkrechte Splitter ist und bleibt so weit
rechts, dass man an das rechte Panel gar nicht herankommt. Auch eine Größen-
änderung des gesamten Fensters hilft nichts; das bleibt so seltsam verzerrt.
Ich kann das hier nicht wirklich nachvollziehen; sowohl in der IDE als auch
standalone funktioniert das hier alles.
Allerdings habe ich inzwischen herausgefunden, dass man in den "Eigenschaften"
des EXE (oder der Verknüpfung) unter "Kompatibilität" unter "Einstellungen"
den Punkt "Verhalten bei hoher DPI-Skalierung überschreiben. Skalierung
durchgeführt von:" ankreuzen und dann von "Anwendung" auf "System" umstellen
kann. Dann scheint es bei den betroffenen Anwendern zu funktionieren.
Leider gibt es diese Auswahl nur unter Windows 10. Unter Windows 7 gibt es
nur "Skalierung bei hohem DPI-Wert deaktivieren", aber da weiß ich nicht,
ob das hilft; da warte ich noch auf Rückmeldung von dem betreffenden An-
wender. Der hat laut Programm-Debug-Ausgaben Screen.Width=1280, Screen.
Height=1024 und Screen.PixelsPerInch=120. So eine geringe Auflösung mit
so einem hohen DPI-Wert kommt mir irgendwie seltsam vor?!
Wobei das natürlich nur die zweitbeste Lösung ist, wenn ich dem Anwender
sagen muss, dass er in den Programmeigenschaften etwas umstellen soll (und
viele können das bzw. finden diesen Punkt auch gar nicht) - und es hilft
auch nicht immer.
Kann ich da im Programm irgendwas besser machen? An der Form selbst habe
ich nichts geändert, die hat im Objektinspektor die Defaultwerte Scaled=
True und PixelsPerInch=96. Und bei 99% der Anwender funktioniert das auch.
(Nicht dass ich jetzt was ändere, damit es bei den restlichen 1% klappt,
aber bei den 99% nicht mehr!)
Hat irgendjemand einen Tipp parat?
Danke & Gruß Matthias.