Delphi-PRAXiS
Seite 3 von 4     123 4      

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/)
-   -   VCL Controls Erscheinungsbild bei per Monitor V2 (https://www.delphipraxis.net/207884-vcl-controls-erscheinungsbild-bei-per-monitor-v2.html)

THonscha 12. Mai 2021 20:53

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Zitat:

Zitat von himitsu (Beitrag 1489334)
Zitat:

Zitat von user69 (Beitrag 1489233)
Ich denk das ist ein Bug in VCL.Buttons.pas (in D10.4.1/2).
This change in VCL.Buttons.pas should fix that.

// LStyle.DrawText(DC, FThemeDetails, Text, TextRect, LFormats, LOptions); //according RSP-30755 (minor subfix) - fix Bitbtn and SpeedButton background color error in win7
LStyle.DrawText(DC, FThemeDetails, Text, TextRect, LFormats, LColor); //according RSP-30755 (minor subfix) - fix Bitbtn and SpeedButton background color error in win7

Hier der genaue/komplette Grund für die unterschieldiche Darstellung:
Delphi-Quellcode:
    if CheckPerMonitorV2SupportForWindow(Handle) then
      PPI := FCurrentPPI
    else
      PPI := 0;

    LStyle.DrawElement(Canvas.Handle, Details, R, nil, PPI);



Aber der eigentliche Grund ist natürlich, das DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 erst mit Windows 10 erfunden wurde und Windows 7 das nicht kennen kann.

Lösung: Wenn Programm in Windows < 10 ausgeführt, dann kein PerMonitorV2 verwenden

Danke Dir - werde ich morgen einbauen!

TurboMagic 12. Mai 2021 22:12

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Zitat:

Zitat von himitsu (Beitrag 1489334)
Hier der genaue/komplette Grund für die unterschieldiche Darstellung:
Delphi-Quellcode:
    if CheckPerMonitorV2SupportForWindow(Handle) then
      PPI := FCurrentPPI
    else
      PPI := 0;

    LStyle.DrawElement(Canvas.Handle, Details, R, nil, PPI);


Aber der eigentliche Grund ist natürlich, das DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 erst mit Windows 10 erfunden wurde und Windows 7 das nicht kennen kann.

Lösung: Wenn Programm in Windows < 10 ausgeführt, dann kein PerMonitorV2 verwenden

Ist das ein Bug in Delphi?
Falls ja, ist der schon gemeldet?
Falls nein, könnte den jemand der sich besser damit auskenn als ich melden?

Grüße
TurboMagic

himitsu 12. Mai 2021 22:54

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Das ist an 2 Stellen so eingebaut.
Denke mal jemand hat sich etwas dabei gedacht, als diese Komponente so kunterbunt umgebaut wurde. :angle2:

Nja, aber ich vermute einfach Mal, dass es nicht mehr mit Windows 7 getestet wurde.

TurboMagic 13. Mai 2021 09:01

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Ist das nun ein Bug in der VCL oder nicht?

himitsu 13. Mai 2021 10:40

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Wenn du das meldest, geht der Status bestimmt auf "das ist halt so" :roll:

Der Bug "geht halt nicht", in aktuelle lebenden Windowsen, ist ja nicht existent. :wink:

THonscha 22. Mai 2021 08:28

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Jetzt weiß ich, warum der Patch bei mir nicht läuft ;) Ich habe die VCL nicht neu kompiliert... geht das irgendwie einfach?

Uwe Raabe 22. Mai 2021 09:00

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von THonscha (Beitrag 1489934)
Ich habe die VCL nicht neu kompiliert

Man compiliert nicht einfach die VCL!

THonscha 22. Mai 2021 13:25

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1489935)
Zitat:

Zitat von THonscha (Beitrag 1489934)
Ich habe die VCL nicht neu kompiliert

Man compiliert nicht einfach die VCL!

Ok - habe die geänderte Datei in das Verzeichnis meines Programmes geschoben und nun funktioniert auch der Patch und löst das Problem.

Vielleicht wird der Fehler ja in einer der nächsten Versionen behoben. Ich habe zumindest den Bug gemeldet.

Codehunter 23. Mai 2021 17:58

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Ich möchte nur noch ergänzen, dass der Windows-7-Support per ESU erst am 23.10.2023 bzw. 14.10.2024 endet. Erst danach ist es wirlich ganz ganz tot. Trotzdem solltest du dir den Aufwand, für Win 7 zu testen gut bezahlen lassen.

THonscha 24. Mai 2021 21:00

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Das ist richtig ... aus diesem Grunde sollte ein Programm auch noch auf WIN 7 laufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.
Seite 3 von 4     123 4      

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