AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Control-Skalierung unter Windows 10

Ein Thema von Benmik · begonnen am 12. Mai 2019 · letzter Beitrag vom 15. Jun 2019
Antwort Antwort
Seite 1 von 3  1 23   
Benmik

Registriert seit: 11. Apr 2009
532 Beiträge
 
Delphi 11 Alexandria
 
#1

Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 19:26
Ich bin kürzlich auf Windows 10 umgestiegen, weil ich mir einen 4K-Monitor zugelegt habe. Natürlich musste ich dann die Skalierung ändern, sie steht zurzeit auf 175%. (Eigentlich hat so ein 4K-Monitor nur Nachteile, außer bei seinem Hauptzweck, dem Anzeigen von Bildern und Videos). Ich habe auf meinen Forms zig Textboxen, Panels und so weiter, die jetzt in großer Zahl verschoben und verknautscht sind. Die Formen stehen alle auf Scaled, eine Reihe von Größen funktionieren auch; ich glaube, wenn Text oder Aufschriften ins Spiel kommen, dann werden sie vergrößert, aber der Container nicht, vor allem nicht vertikal.

Muss ich das alles jetzt händisch machen oder gibt es da einen einfacheren Weg?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#2

AW: Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 19:30
Am schnellsten bekommst du das weg, wenn du die High-DPI Unterstützung im Manifest deaktivierst.

Soll die aber erhalten bleiben, dann musst du schon konkret zeigen, was du machst und was dann nicht funktioniert. Es gibt keine pauschalen Empfehlungen für diese Problematik, da man dort an zu vielen Stellmöglichkeiten was kaputt machen kann.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 19:40
Also ich habe auch einen 4k (zweitmonitor) und habe mit 10.2 (fast) keine Probleme.
Oft liegt es an einen Code oder "Altforms" welche seit den Umstieg D6->X6->10.2 noch nicht neu gespeichert wurden.

In 10.3 gib es glaube ich durch übearbeitung des HighDPI-Funktionalität noch ein paar "Baustellen" die man selbst umschiffen muss.
Evtl. auch alte Controls funktionieren wegen fehlender Anpassung an neue Delphi-Versionen nicht richtig (Skalierungsmethode gibts jetzt in erweiterter Version).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
532 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 20:47
Das Umstellung in den Projektoptionen - Manifest von "Über Monitor V2" auf "Keiner" hatte durchschlagenden Erfolg, alles sah aus wie vorher.

Nur handelt es sich ja um ein Bildanzeigeprogramm. Und dann werden die Bilder leider mitskaliert und der Vorteil eines hochauflösenden Monitors ist dahin.

Zu einem Teil ist es auch so, dass ich Controls - in der Regel TPanel - je nach Inhalt anpassen muss. Das hatte ich zum Teil mit absoluten Pixelangaben gemacht, was mir jetzt natürlich auf die Füße fällt. Gibt es eine Möglichkeit, einen Faktor zu ermitteln?
  Mit Zitat antworten Zitat
old7
(Gast)

n/a Beiträge
 
#5

AW: Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 22:23
K.A. ob's Dir weiterhilft, aber bei allen meinen Forms habe ich damals (uraltes Delphi7pe) im OI auf
scaled := false;
umgestellt und überlasse seitdem das Skalieren den Systemeinstellungen von Windows (>=8). Keine Probleme dadurch/damit. Benutze aber auch nur einen Monitor und 100-150% für's Skalieren durch Windows und keine in die Skalierung reinfummelnden Manifeste.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#6

AW: Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 23:12
scaled := false;
umgestellt und überlasse seitdem das Skalieren den Systemeinstellungen von Windows
Das entspricht exakt dem Verhalten mit der DPI-Option "keine" und führt zu der unscharfen Bilddarstellung, da Windows einfach die Pixel vergrößert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
532 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 23:28
So isses, das hatte ich auch schon probiert, da ich vorher ja etwas rumgelesen hatte.

Es scheint ja keinen Zauberweg zu geben. Ich habe jetzt so eine Art (Frickel-)Lösung gefunden. Man hätte sich schon denken können, dass absolute Pixelangaben einem irgendwann mal auf die Füße fallen.
  Mit Zitat antworten Zitat
old7
(Gast)

n/a Beiträge
 
#8

AW: Control-Skalierung unter Windows 10

  Alt 12. Mai 2019, 23:45
@Uwe Raabe: Was würdest Du empfehlen? Gibt es überhaupt eine (eher allgemeingültige) Empfehlung bezüglich "scaled := ?????" bei neueren Delphis?

Was meinst Du mit "der unscharfen Bilddarstellung"? Graphiken auf/in den Forms oder auch die Textdarstellung auf/in den Formularen? Oder das Zoomen von Windows (auf über 100%) allgemein?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#9

AW: Control-Skalierung unter Windows 10

  Alt 13. Mai 2019, 07:49
@Uwe Raabe: Was würdest Du empfehlen? Gibt es überhaupt eine (eher allgemeingültige) Empfehlung bezüglich "scaled := ?????" bei neueren Delphis?
Solange man nicht selbst an der Skalierung von Forms rumfummelt, was unter High-DPI Gesichtspunkten eigentlich nur kontraproduktiv sein kann, sollte Scaled immer auf True stehen. Je nach Delphi- und Windows-Version kommt man mit einem passenden Manifest sicher noch am ehesten zum Ziel.

Was meinst Du mit "der unscharfen Bilddarstellung"? Graphiken auf/in den Forms oder auch die Textdarstellung auf/in den Formularen? Oder das Zoomen von Windows (auf über 100%) allgemein?
Wenn die Anwendung selbst nicht als DPI-aware erstellt wurde, übernimmt Windows die Skalierung. Dabei wird z.B. auf einem 200% System einfach jedes Pixel verdoppelt bzw. bei anderen Skalierungen entsprechend interpoliert. Das führt dann zu einer verwaschenen oder verpixelten Darstellung.

Für Schriften kann man da noch etwas rausholen, wenn man unter Windows in den Eigenschaften bei Kompatibilität - Hohe DPI-Skalierung überschreiben das System (Erweitert) einstellt. Dabei bleiben aber Grafiken wie Icons und Bilder unberührt.

Die High-DPI Unterstützung wird mit jeder Windows- und Delphi-Version besser. Für halbwegs normale Anwendungen sollte das aktuell auch ausreichen, aber es gibt halt immer Sonderfälle, die noch nicht so richtig abgedeckt sind. Da muss man dann im Einzelfall nach Lösungen suchen oder halt Kompromisse eingehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
664 Beiträge
 
Delphi 12 Athens
 
#10

AW: Control-Skalierung unter Windows 10

  Alt 13. Mai 2019, 11:29
Gibt es eine Möglichkeit, einen Faktor zu ermitteln?
Ja:
Screen.PixelsPerInch/96 Wobei die 96 davon ausgeht, dass du deine Forms in der IDE mit 100% designst.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:07 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