Delphi-PRAXiS
Seite 2 von 4     12 34      

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

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ok, im Anhang ist die Testdatei...
Unter Win10 alles ok
Unter Win7 Bug!

user69 12. Mai 2021 15:16

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Wie bekomm ichs unter Win7 zum laufen? Ich bekomm erst mal den Fehler: Error loading Midas.dll (und dann sind alle Buttons disabled)

Da ich bisher nicht mit Datenbanken gearbeitet hab weiß ich nicht, wie ich das fixe.

himitsu 12. Mai 2021 15:29

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Alles, was mit dem ururururalten MIDAS zu tun hat, aus dem Programm rauswerfen. (leider ist das ClientDataSet bissl alt)

Die Midas.dll mitgeben, oder es über die MidasLib.pas einkompilieren.


Und am Besten gleich das tote Windows 7 mit wegwerfen.

KodeZwerg 12. Mai 2021 15:34

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Zitat:

Zitat von himitsu (Beitrag 1489317)
Und am Besten gleich das tote Windows 7 mit wegwerfen.

Dem stimme ich zu.

THonscha 12. Mai 2021 15:35

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Zitat:

Zitat von KodeZwerg (Beitrag 1489318)
Zitat:

Zitat von himitsu (Beitrag 1489317)
Und am Besten gleich das tote Windows 7 mit wegwerfen.

Dem stimme ich zu.

Hilft mir leider nicht bei Kunden, die Windows 7 einsetzen.

KodeZwerg 12. Mai 2021 15:38

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Dafür ist ja mein Link da (Kunden zeigen das es mehr als veraltet ist und kein Support mehr angeboten wird)

himitsu 12. Mai 2021 15:44

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Wenn dein Programm kein Win7 mehr unterstützt, dann müssen sie halt eben upgraden. (OK, oder sie bezahlen für eigentlich unnötige abwärtskompatibilitäten)
* hatten ja immerHIN schon 6 Jahre Zeit dafür
* und offiziell, laut Hersteller, ist Windows 7 seit nun fast 1,5 Jahren ausgestorben (*1)



1) Neue Dinge hatte ich mit aktuellen Funktionen implementiert.
Wenn das in Windows 7 nicht lief, dann hab ich auch nicht explizit dafür den Code geändert. (also einige neuere Module waren dann einfach nicht nutzbar, oder die Arbeitzzeit muß eben gezahlt werden)
Und die Einstellung des Supports, hat bei uns auch den letzten Kunden dazu gebracht, seine PCs upzugraden.

OK, abgesehn alten Industrie-PC mit Windows 7-Embedded, wo aber nur ein altes Modul verwendet wird. (wird eh nur als Test-System genutzt und die 3000€ für eine neue Version wird nicht finanziert werden)

THonscha 12. Mai 2021 15:54

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Ok, würde mich freuen, wenn wir zurück zur Frage kommen. Das verwässert immer ein wenig die Fehlersuche.
Abhilfe bringt ja schon, wenn ich im Manifest die per Monitor V2 Option deaktiviere. Aber das sollte auch eleganter gehen.

user69 12. Mai 2021 17:06

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
Hab den fix nun mit deinem Programm getestet.

Er funktioniert!
Ohne siehts aus, wie disabled, mit ist wie enabled.

Du must die VCL.Buttons.pas in dein Verzeichnis kopieren und dort ändern (ggf. Delphi nach dem kopieren neu starten).

himitsu 12. Mai 2021 17:31

AW: VCL Controls Erscheinungsbild bei per Monitor V2
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.
Seite 2 von 4     12 34      

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