AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ausführung auf 150% Bildschirm

Ein Thema von Pfaffe · begonnen am 28. Nov 2015 · letzter Beitrag vom 24. Jan 2017
Antwort Antwort
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#1

AW: Ausführung auf 150% Bildschirm

  Alt 29. Nov 2015, 12:24
Ich habe das FMX-Demo ControlsDemo.exe auf meinem "150%" Notebook ausprobiert. Das Programm wird überhaupt nicht scaliert, die Darstellung ist so klein, dass sie keinem zugemutet werden kann. Gibt es bei FMX undokumentierte Tricks dsbzgl., in der Doku von Seattle kann ich nichts finden?
Bzgl. der Eigenschaft Quality gibt es auch keine Vernünftige Hilfe.
Da ich das Alles irgendwie nicht wahrhaben will, nach meiner Meinung müsste Emba einen Rückruf für Seattle oder mind. eine Warnmeldung herausgeben, habe ic h mal eine alte Software-Suite von mir aus dem Jahr 2007 auf meinen Win 10.1 PCs installiert. In der Suite ist auch ein Visual Basic Programm dabei, alles andere sind Delphi Programme. Die Suite ließ sich ohne Probleme installieren und wird auch auf dem 150% Anzeige Geräte zufriedenstellend dargestellt. OK, die hlp-Dateien funktionieren nicht, die emf-Grafiken werden nicht mehr angezeigt, aber dafür kann man ja Tools nachinstallieren. Und diese Suite ist nicht unicode fähig.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#2

AW: Ausführung auf 150% Bildschirm

  Alt 29. Nov 2015, 13:59
Ja, unter FMX ist das mit DPI-Aware noch einmal ein anderes Thema.

Grundsätzlich ist die Voreinstellung ab Seattle so, dass die Programme DPI-Aware sind. Nur geschieht das hier im Gegensatz zur VCL bei den meisten Komponenten nicht automatisch, sondern man muss sich selber drum kümmern.

Hier gibt es zwei Wege, einen einfachen, aber mit nicht zufriedenstellenden Ergebnissen und einen aufwändigen, mit guten Ergebnissen:

1. Weg: Du legst alle Deine Komponenten in ein TLayout und sklaierst das TLayout entsprechend der DPI-Werte. Du kannst das selber mal testen: Setze im Controls-Demo bei der "ScaleTrack"Komponente den Max-Wert einmal auf "2". Wenn Du dann neu kompilierst und das Programm auf den 150 DPI-Monitor ausführst, ziehst Du die Trackbar auf 150, dann stimmt alles von der Größe her.

Leider sind hier aber seit langem Bugs drin, die immer noch nicht behoben sind: Bei einigen Komponenten treten Teile der Komponente aus dem Rahmen heraus, was nicht gut aussieht. Oder viele Komponenten zeigen feine Linien, was auf einen fehlerhaften Skalier-Algorhytmus zurückzuführen ist (vgl. Screenshot in der Anlage).

2. Weg: Du arbeitest umfangreich mit Alignments für die Komponenten und berechnest die Schriftgrößen und Größen der Elemente selber und weist die alle zur Laufzeit zu. Bei den Grafiken kommt FMX Dir entgegen, wenn Du im MultiResBitmap Grafiken mit unterschiedlichen Auflösungen hinterlegst. Da sucht das System dann automatisch das passende, je nach Auflösung raus.

Ich finde es sehr schade, dass der erste Weg nicht richtig funktioniert, für die viele Anwendungsfälle wäre das durchaus ausreichend, aber optisch ist es derzeit nicht akzeptabel.

Wie auch immer, Programme DPI-Aware zu machen, ist immer sehr viel Arbeit. Ich habe gerade meine wichtigsten VCL-Programme DPI-Aware gemacht. FMX-Programme sind Anfang des nächsten Jahres dran (derzeit sind die nicht DPI-Aware, sondern werden von Windows skaliert, eben mit dem leichten Unschärfe-Ergebnis).
Angehängte Grafiken
Dateityp: jpg Linien.jpg (14,8 KB, 48x aufgerufen)

Geändert von Harry Stahl (29. Nov 2015 um 14:22 Uhr)
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Ausführung auf 150% Bildschirm

  Alt 29. Nov 2015, 20:29
Leider sind hier aber seit langem Bugs drin, die immer noch nicht behoben sind: Bei einigen Komponenten treten Teile der Komponente aus dem Rahmen heraus, was nicht gut aussieht. Oder viele Komponenten zeigen feine Linien, was auf einen fehlerhaften Skalier-Algorhytmus zurückzuführen ist (vgl. Screenshot in der Anlage).
Genau dieses Problem mit den feinen Linien macht mich wahnsinnig. In einem Dialog tritt das Problem auf, im nächsten dann wieder nicht. Finde hier einfach keinen Ansatz, aber so kann man ja eigentlich eine Software nicht an Kunden weitergeben....

Hat jemand hier eine Idee?
Philip
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#4

AW: Ausführung auf 150% Bildschirm

  Alt 30. Nov 2015, 08:57
Ich hatte mein Notebook von 150% (Standardwert nach Erstinstallation) auf 100% umgestellt (sah sonst schlimm aus, auf einem angeschlossenen 24-Zöller)

Leider bleibt da wohl was zurück. (so wie bei den deutschen Windows, die für Delphi teilweise noch englisch sind)

Programme mit XE3 bis XE8 sehen eigentlich OK aus, aber alle alten Delphi 7-Programme und viele Java-Programme machen jetzt mist.
Bei D7 sind die Fenster zu klein und der Inhalt steht über, bzw. Rechts/Unten liegt es außerhalb des Fensters.
Bei Java ist alles komplett zu klein, also nur 75%.

Und ich fand in all den Jahren keine Lösung.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.810 Beiträge
 
Delphi 12 Athens
 
#5

AW: Ausführung auf 150% Bildschirm

  Alt 1. Dez 2015, 08:28
Ich verzichte auf Skalierung. Wofür kaufe ich mir mehr Pixel, wenn ich sie dann durch aufgeblasene Inhalte wieder verliere? Freilich gibt es Kunden, die mehr oder weniger Freiwillig, die Skalierung eingeschaltet haben (ab Windows 7 oder 8 wird bei angeschlossenem FullHD-Display automatisch skaliert!!). Aber die sehen den Platzverlust genau wie ich, und lassen sich gerne dazu anleiten, die Skalierung zu dekativieren.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ausführung auf 150% Bildschirm

  Alt 1. Dez 2015, 14:15
Meine Kunden entscheiden, ob sie auf 150% schalten. Sehr schön finden viele die Technik im Webbrowser Strg.-Mausrad. Die Geraration 50+ nimmt zu und die haben das Geld zum investieren.
Weiterer Erfahrungsbericht mit Test auf einem weiteren Gerät mit Win 10.1 und 150%.
Bei vcl-Programmen mit DX10 wird nicht alles skaliert, z.B. Combobox mit csOwnerDrawFixed.
Bei vcl-Programmen mit DX8 ist die Skalierung OK, jedoch die Schrift nicht super scharf.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.810 Beiträge
 
Delphi 12 Athens
 
#7

AW: Ausführung auf 150% Bildschirm

  Alt 1. Dez 2015, 15:09
DX8 skaliert gar nicht, das macht Windows für Dich. Darum ist es auch so unscharf. Das dürfte auch keinen Kunden freuen.

Im Prinzip wirst du nicht umhin kommen, das selbst auszuprogrammieren, auch und vor allem im Falle eines Rechners mit mehreren Monitoren (mit unterschiedlichen DPI). Dann wird Windows nämlich maximal bekloppt und selbst Microsoft Anwendungen skalieren dann nicht einheitlich richtig. Ich habe zB drei Monitore am Rechner, einer davon hat bei gleicher auflösung eine kleine Diagonale (Notebook halt) und das Outook wird immer unscharf dargestellt, Word hingegen einwandfrei. Übrigens, ich habe das Skalieren ausgeschaltet, und für alle Monitore 100% eingestellt. Warum mein 8.1 trotzdem dran rumspinnt, kann mir keiner sagen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Ausführung auf 150% Bildschirm

  Alt 1. Dez 2015, 15:37
Ich verzichte auf Skalierung. Wofür kaufe ich mir mehr Pixel, wenn ich sie dann durch aufgeblasene Inhalte wieder verliere? Freilich gibt es Kunden, die mehr oder weniger Freiwillig, die Skalierung eingeschaltet haben (ab Windows 7 oder 8 wird bei angeschlossenem FullHD-Display automatisch skaliert!!). Aber die sehen den Platzverlust genau wie ich, und lassen sich gerne dazu anleiten, die Skalierung zu dekativieren.
Es ist keine Lösung dem Kunden zu sagen, er soll die Skalierung abschalten. Zum einen gibt es sehschwache Leute, die ohne entsprechende Skalierung einfach gar nix mehr erkennen und zum anderen gibt es auch genügend moderne Monitore mit Auflösungen, bei denen man ohne Skalierung nicht viel erkennt.

Nur mal als Beispiel: Ich habe zuhause einen 40 Zoll Monitor mit 4k-Auflösung. Wenn ich da die Schrift auf 100% lasse, kann ich auch nur schlecht etwas lesen, also hab ich sie auf 125% gestellt.


Das Problem ist ja, dass schon die IDE selbst mit verschiedenen DPI-Skalierungen enorm rumspackt, wie soll sie es dann vernünftig mit den erstellten Programmen hinbekommen. Dazu gibt es leider Dutzende Einträge im Quality von EMB.

Geändert von bra ( 1. Dez 2015 um 15:40 Uhr)
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#9

AW: Ausführung auf 150% Bildschirm

  Alt 2. Dez 2015, 11:29
Zitat:
Wenn Ihr in XE8 in der Manifestdatei nicht das DPIAware-Flag gesetzt habt, dann Scaled Delphi unter Windows 10 selber gar nichts (weil dem Programm eine 100%-Auflösung vorgegaukelt wird) und Windows nimmt die Skalierung selber vor.
...
Davon mal abgesehen, ist in DX10 ein Bug: Auch wenn Ihr "Hochauflösung aktivieren" deaktiviert, wird diese Option nicht (dauerhaft) gespeichert. Wenn Ihr den Dialog beim nächsten Mal wieder aufruft, dann ist die Checkbox wieder aktiviert.
Die Informationen von Harry Stahl haben mich ein gutes Stück weitergebracht!
Mit DPIAware-Flag in DX10 werden die Anwendungen deutlich Augen freundlicher, bei Auflösungen >100%, als wenn man die Skalierung Windows 10 überlässt. Leider, Leider, Leider, funktioniert das nicht zu 100% zuverlässig, so dass man viel testen muss, insbesondere wenn man Altprojekte mit DX10 compilieren möchte. Der Bug mit der Checkbox war mir nicht bekannt und hat meine Testerei ziemlich verfälscht. Ein Altprojekte ohne DPIAware-Flag verhält sich so, als wenn man es mit XE8 compiliert hat.
Liebe IDE Entwickler, bitte macht die Bugs raus!
  Mit Zitat antworten Zitat
Antwort Antwort

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 07:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz