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
[/Edit]
Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!