Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Checkbox Quadrat setzen (https://www.delphipraxis.net/192732-checkbox-quadrat-setzen.html)

BrightAngel 20. Mai 2017 09:51

AW: Checkbox Quadrat setzen
 
Hey :)

Ich kenne mich zwar nicht in der Tiefe mit der Checkboximplementierung aus, aber ich weiß, dass es bei Windows ja ein sogenanntes Three-StateCheckbox Control gibt.

Zu finden, wie das mit den Stateübergängen gedacht ist findet man in diesem Eintrag über Button States. Es kann sein, dass man dazu die Controlerzeugung ersetzen/verändern müsste: Checkboxen sind ja eigentlich Buttons für Windows intern und die verschiedenen Button Styles findet man hier. Auf der verlinkten Seite ist vermutlich besonders gleich der allererste Eintrag "BS_3STATE" von Interesse. Über die Nachrichten BM_SETCHECK und BM_GETCHECK lässt sich dann der Zustand setzen und auslesen.

Wie gesagt, ich bin da leider kein Fachmann für die Delphi interne Implementierung und vermutlich habt ihr die entsprechenden Seiten auch schon gefunden. Ich wollte das nur noch kurz der Vollständigkeit halber hier noch dranhängen, auf dass es doch noch den ein oder anderen Suchenden bereichern möge :)

[Edit]
Hatte da noch irgendwas im Hinterkopf und habe hier noch die folgende Designintension gefunden:
Zitat:

Don't use the mixed state to represent a third state. The mixed state is used to indicate that an option is set for some, but not all, child objects. Users shouldn't be able to set a mixed state directly—rather the mixed state is a reflection of the child objects. The mixed state isn't used as a third state for an individual item. To represent a third state, use radio buttons or a drop-down list instead.
Das ist eigentlich recht lustig: Das Control selbst hat drei Zustände und heißt deshalb intern "3STATE"-Control, aber auf Anwenderebene dann "Mixed-State"-Control, weil es semantisch eine (gemischte) Unschärfe in das normale Checkbox-Control einführt. Es soll aber kein semantisch dritter Zustand damit ausgedrückt werden :D:D
[/Edit]

Brighty


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:53 Uhr.
Seite 2 von 2     12   

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