Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Hat DX10.1 u2 noch Kindrkrankheiten? (https://www.delphipraxis.net/191139-hat-dx10-1-u2-noch-kindrkrankheiten.html)

a.def 13. Dez 2016 10:41

Hat DX10.1 u2 noch Kindrkrankheiten?
 
Ich habe heute zum Test eine meiner Anwendungen auf DX10.1 u2 umgestellt.

In meiner Windows 7 VM mit 125 DPI war ich dann ein wenig geschockt. Denn die Anwendung ohne jegliche Änderungen gemacht zu haben sieht vollkommen anders aus als die die mit meinem alten XE2 kompiliert wurde.

Die TToolBar-Komponente wirft mir zum Beispiel den letzten TToolButton ganz rechts an die Form, obwohl er eigentlich zu den anderen ToolButtons nach links gehört.
Auch hat die ToolBar plötzlich einfach eine andere Höhe. Statt 22 Pixel plötzlich 45.
Oder ComboBoxen überlappen plötzlich die Buttons die daneben liegen.

Ist das bekannt, dass DX10.1 die GUI ein wenig durcheinander würfelt beim Wechsel von XE2 zu DX10.1 u2?

Pfaffe 13. Dez 2016 10:58

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Hast Du unter Projektoptionen-Anwendung-Manifestdatei "Hochauflösung aktivieren" aktiviert? Und falls Deine Anwendung noch die Komponente XP-Manifest hat, diese entfernen, auch in der uses Auflistung.

a.def 13. Dez 2016 11:02

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte gerade schon ein wenig Hoffnung und dann sah ich das hier :( (leider nicht aktiviert)

TBx 13. Dez 2016 11:51

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Dann aktivier' es doch mal ;-)

jaenicke 13. Dez 2016 12:32

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Vielleicht zur Erklärung:
Wenn das Häkchen nicht gesetzt ist, geht Windows davon aus, dass die Anwendung nicht High-DPI unterstützt. Und dann wird eine nicht immer schöne Automatik angewendet.

Die schaltet man mit dem Häkchen aus. Da passiert noch mehr, aber das ist das wichtigste dabei, mehr gibt es bei Google.

EWeiss 13. Dez 2016 12:39

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Hab kein DX10 aber kann man das nicht selbst über Manifest setzen?

<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>

Das Problem ist halt das von Windows die höhere DPI NICHT automatisch skaliert wird.
Davon ausgenommen ist WPF bei Forms muss man das Windows über ein Manifest mitteilen.
Hat aber weniger mit Delphi sondern eher mit Windows zu tun.

gruss

a.def 13. Dez 2016 12:50

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Zitat:

Zitat von TBx (Beitrag 1355987)
Dann aktivier' es doch mal ;-)

Bereits getestet. Hat im Prinzip nichts geändert, da alle meine Formulare Scaled False sind.
Ich bin jetzt für das Projekt wieder zurück auf XE2.

a.def 14. Dez 2016 17:25

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Kann das denn jemand anderes bestätigen, dass DX10.1u2-Programme in hoher DPI anders aussehen als XE2-Programme?

Pfaffe 14. Dez 2016 21:56

AW: Hat DX10.1 u2 noch Kindrkrankheiten?
 
Scaled muss true sein.
Tipp: In Delphi 10.1 Up 2 eine neue Testanwendung erstellen und an den Grundeinstellungen nichts ändern. In die dpr kommt bei mir noch ein {$IFDEF DEBUG} ReportMemoryLeaksOnShutdown:= True; {$ENDIF} und ein try TStyleManager.SetStyle(TStyleManager.LoadFromFile( 'myStyle.vsf')); except end; rein. Den Font in der Form ändere ich von Tahoma Standard 8 auf Segoe UI Standard 9. Eine Form leite ich nie von TForm, sondern von TMyFrom2 ab. TMyForm1 kann sich die Fensterpositionen merken, wenn notwendig, und was wichtig ist, es stellt fest, dass die Anwendung beim letzten Start in einer anderen Bildschirmauflösung und in einer Scalierung gestartet wurde oder die Anwendung in einem unsichtbaren Bildschirmbereich geöffnet wurde. Alternativ kann man in die Anwendung eine Option "Fensterposition auf Standard setzen" einbauen. Oder man lässt das alles sein und verkauft seinem Kunden einen Fernwartungsservice für 130 EUR die Stunde. TMyForm2 hat die Funktionalitäten für die Internationalisierung.
Testen, testen mit verschiedenen Styles, testen mit verschiedenen Bildschirmauflösungen, testen, testen, protokollieren und dann entscheiden, ob es sinnvoll ist, die Altanwendung zu migrieren.


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