Delphi-PRAXiS

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.

Rolf Frei 24. Aug 2019 12:13

AW: TCheckbox und Darstellung bei grayed
 
Verstehe ehrlich gesagt nicht wo das Problem liegt! Wieso willst du das Standardverhalten einer themed App verändern? Wenn du das gleiche haben willst wie in D7(ohne Themes) dann schalte den Themesupport in den Projektoptionen aus. Keine themed App in Windows hat ein grayed Häcken. Das Aussehen des "grayed state" wird durch das Theme gesteuert und du solltest da auf keinen Fall was daran veruchen zu ändern, ansosnten wird deine Applikation anders aussehen als jedes andere Windows Programm und der Anwender wird nur irritiert, weil das dann bei deiner App anderst aussieht als er es kennt.

Übrigens hat das nichts mit der Delphiversion zu tun. Wenn du das D7 Programme Theme enablest, wirst du das selbe sehen wie du mit XE4 siehst. Der Unterschied ist einfach, dass in XE4 die Themen per Default aktiviert sind und bei D7 nicht. Willst du dass das XE4 Programm gleich aussieht, schalten in den Optionen den Themesupport aus.

Lemmy 25. Aug 2019 22:05

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von Rolf Frei (Beitrag 1442940)
Übrigens hat das nichts mit der Delphiversion zu tun. Wenn du das D7 Programme Theme enablest, wirst du das selbe sehen wie du mit XE4 siehst. Der Unterschied ist einfach, dass in XE4 die Themen per Default aktiviert sind und bei D7 nicht. Willst du dass das XE4 Programm gleich aussieht, schalten in den Optionen den Themesupport aus.

das ist mir durchaus bewusst, aber nicht das Thema :-)


Zitat:

Zitat von Rolf Frei (Beitrag 1442940)
Verstehe ehrlich gesagt nicht wo das Problem liegt!

weil wir aktuell davon ausgehen, dass das unsere Kunden sehr stark irritiert, was zu verstärkten Supportanrufen führen kann, was wir gerne vermeiden würden. Ganz einfach. Auf den Theme Support verzichten können (wollen) wir aber auch nicht, weil wir wie schon weiter oben geschrieben befürchten, dass das irgend wann zu anderen Problemen führt (von den Vorteile mal ganz abgesehen).


Danke an die Beteiligten für die Beiträge!!
Grüße

Uwe Raabe 25. Aug 2019 22:57

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von Lemmy (Beitrag 1443192)
weil wir aktuell davon ausgehen, dass das unsere Kunden sehr stark irritiert, was zu verstärkten Supportanrufen führen kann, was wir gerne vermeiden würden.

Das würde ich in diesem Fall eher in Kauf nehmen, da es eine einmalige Sache ist und dem Kunden im Zuge einer modernen Oberfläche leichter verkauft werden kann. Eventuell kann man das mit einer geschickten Dokumentation der Änderungen ja auch als Feature deklarieren. Immerhin kann man jetzt eine grayed/enabled Grafik von einer checked/disabled unterscheiden.

Rolf Frei 26. Aug 2019 11:25

AW: TCheckbox und Darstellung bei grayed
 
Zitat:

Zitat von Lemmy (Beitrag 1443192)
weil wir aktuell davon ausgehen, dass das unsere Kunden sehr stark irritiert, was zu verstärkten Supportanrufen führen kann, was wir gerne vermeiden würden. Ganz einfach. Auf den Theme Support verzichten können (wollen) wir aber auch nicht, weil wir wie schon weiter oben geschrieben befürchten, dass das irgend wann zu anderen Problemen führt (von den Vorteile mal ganz abgesehen).

Wüsste nicht wieso das den Kunden irritieren sollte? Wenn jemand Windows 7/10 (eigentlich ist das schon seit XP kein grauses Häcken mehr) verwendet, ist er sich gewohnt, dass "grayed" eben so dargestellt wird und nicht aussieht wie in unthemed Apps. Ich glaube ihr macht euch da unnötigerweise Sorgen. Ich glaube eure Kunden würden sich eher darüber freuen, dass die App nun etwas moderner wirkt und nun wie andere aktuelle Windowsprogramme aussieht.


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