Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi TCheckbox und Darstellung bei grayed (https://www.delphipraxis.net/201759-tcheckbox-und-darstellung-bei-grayed.html)

Lemmy 23. Aug 2019 08:56

TCheckbox und Darstellung bei grayed
 
Servus,

in XE4 (im Vergleich zu Delphi 7 ohne XE :-)) und auch den neueren Delphis werden Checkboxen mit dem State cbGrayed anstelle eines ausgegrauten Check-Haken mit einem schwarzen Quadrat dargestellt.

Beim "normalen" Checkbox kann ich das mit allowGrayed noch halbwegs umgehen, bei DB-sensitiven Checkboxen aber nicht (wenn kein Datensatz aktiv ist).

Gibt es eine Möglichkeit die Grafik für cbGrayed für eine Checkbox zu ändern? Ggf. über eine Windows-Message?

GRüße
Lemmy

Uwe Raabe 23. Aug 2019 09:32

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von Lemmy (Beitrag 1442722)
Gibt es eine Möglichkeit die Grafik für cbGrayed für eine Checkbox zu ändern?

Vermutlich, wenn du den Theme-Support deaktivierst - die Darstellung kommt, soweit ich weiß, aus der CommCtrl.DLL. Das hat dann aber andere gravierende Auswirkungen.

Lemmy 23. Aug 2019 09:51

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1442732)
Zitat:

Zitat von Lemmy (Beitrag 1442722)
Gibt es eine Möglichkeit die Grafik für cbGrayed für eine Checkbox zu ändern?

Vermutlich, wenn du den Theme-Support deaktivierst - die Darstellung kommt, soweit ich weiß, aus der CommCtrl.DLL. Das hat dann aber andere gravierende Auswirkungen.

servus Uwe,

keine Option, wir hatten mit einem Windows Update ich meine vom letzten Jahr das Problem, die DateTime Picker austauschen zu müssen, weil Microsoft in der CommCtrl was kaputt gemacht hat. Der "aktuelle" Standard scheint mir da weniger anfällig zu sein.

Uwe Raabe 23. Aug 2019 09:54

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von Lemmy (Beitrag 1442740)
keine Option

War mir schon klar. Ich wollte auch eigentlich nur andeuten, daß es da keine Möglichkeit gibt - außer natürlich OwnerDraw.

Lemmy 23. Aug 2019 10:43

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1442742)
Zitat:

Zitat von Lemmy (Beitrag 1442740)
keine Option

außer natürlich OwnerDraw.

das wollte ich jetzt nicht lesen *g*

Danke!

hoika 23. Aug 2019 10:58

AW: TCheckbox und Darstellung bei grayed
 
Hallo,
man kann doch nur bei der betroffenen CheckBox das Theming ausknippsen.
Vielleicht hilft das ja schon.

Lemmy 23. Aug 2019 11:49

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von hoika (Beitrag 1442756)
Hallo,
man kann doch nur bei der betroffenen CheckBox das Theming ausknippsen.
Vielleicht hilft das ja schon.

hm. interessanter Ansatz - wobei ich noch nicht weiß b das am ENde dann wirklich besser aussieht. Hast Du da einen Link für mich?

Oh eben bemerkt, muss mein "bevorzugtes" Delphi auf XE4 ändern :-)

Uwe Raabe 23. Aug 2019 11:50

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von hoika (Beitrag 1442756)
man kann doch nur bei der betroffenen CheckBox das Theming ausknippsen.

Kann man eben nicht. Man kann allenfalls die VCL-Styles abschalten, aber die CommCtrl.DLL ist innerhalb der App immer dieselbe.

hoika 23. Aug 2019 12:11

AW: TCheckbox und Darstellung bei grayed
 
Hallo,
früher ging das so

uses
UxTheme

SetWindowTheme(MyCheckBox.Handle, ' ', ' ');


Oder wir reden gerade aneinander vorbei.

Uwe Raabe 23. Aug 2019 12:33

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von hoika (Beitrag 1442768)
Oder wir reden gerade aneinander vorbei.

In der Tat! Ich hatte dich so verstanden, daß die StyleElements der CheckBox abgewählt werden sollten. Das hat nämlich keinen Einfluss auf die Darstellung.

Das mit dem SetWindowTheme bringt zwar das graue Häkchen zurück, eliminiert aber auch die Transparenz der CheckBox (war jetzt das erste was mir auffiel). Möglicherweise gibt es noch andere Nebeneffekte. Kommt sicher auf den konkreten Anwendungsfall an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.
Seite 1 von 2  1 2      

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