![]() |
AW: VirtualTreeView - Checkbox disablen
Hallo zusammen,
hat hier jemand schon eine Lösung gefunden. Ich würde die Checkboxen gerne nur als Status Information verwenden. Soll heißen, ich will wissen, ob weiter unten im Baum, schon eine Bearbeitung erfolgt ist. Daher soll über den Click auf die Checkbox keine Änderung erfolgen. Gruß Jens |
AW: VirtualTreeView - Checkbox disablen
In diesem Fall würde ich einfach das OnChecking Event implementieren und den Parameter
Delphi-Quellcode:
(immer) auf
Allowed
Delphi-Quellcode:
stellen.
false
Delphi-Quellcode:
procedure TfrmMain.vstChecking(Sender: TBaseVirtualTree; Node: PVirtualNode; var NewState: TCheckState;
var Allowed: Boolean); begin Allowed := False; end; |
AW: VirtualTreeView - Checkbox disablen
Das ist richtig, aber dann kann ich den Checkstate auch nicht mehr setzen... Ich will ja nur das OnClick verhindern.
|
AW: VirtualTreeView - Checkbox disablen
Brauchst du den CheckState für die Anzeige oder nur als internen Status?
|
AW: VirtualTreeView - Checkbox disablen
Zitat:
Delphi-Quellcode:
setzt? Das habe ich leider im Moment nicht im Kopf. Wenn dem so wäre, dann könntest du natürlich über einen Zwischenweg arbeiten und dir eine Variable setzen die auf
vst.IsChecked[Node] := true;
Delphi-Quellcode:
steht wenn du aus dem Programm heraus den CheckState der Node verändern willst, aber auf
true
Delphi-Quellcode:
ist, wenn der Benutzer eine Aktion ausführt. Und die Variable wird dann im OnChecking Event geprüft.
false
|
AW: VirtualTreeView - Checkbox disablen
Eigendlich ganz einfach.
Am besten wäre hier vermutlich die TriStateCheckBox. Auf Node_Level 2 habe ich einen Eingabemaske hinterlegt. In dieser Oberfläche kann man ein Datum einstellen. Wenn das eingestellte Datum "älter" als 3 Monate ist, soll der CheckState = false sein. Wir die Bearbeitung dann durch geführt und das Datum aktualisiert, wird der CheckState wieder true. Somit möchte ich im obersten Node_Level die Erforderlichkeit der Bearbeitung anzeigen. Der CheckState darf sich aber nicht durch das Klicken auf die Checkbox verändern, sondern soll abhängig vom Datim sein. Ich habe einen Baum:
Code:
//Keine Bearbeitung erforderlich
[x] Node_0 [x] Node_1 [x] Node_2a [x] Node_2b [x] Node_2c
Code:
//Bearbeitung erforderlich
[#] Node_0 [#] Node_1 [ ] Node_2a [x] Node_2b [ ] Node_2c
Code:
//Bearbeitung erforderlich
[ ] Node_0 [ ] Node_1 [ ] Node_2a [ ] Node_2b [ ] Node_2c |
AW: VirtualTreeView - Checkbox disablen
Ahh alles klar. Das Problem hierbei ist allerdings, dass sobald die CheckBox als TriStateCheckBox gesetzt wird, sich der Tree selbst um den CheckState kümmert. Das kann man meines Wissens nach nicht umgehen und ich würde sagen, dass ich den Tree doch sehr gut kenne (aber ich lasse mich auch gern eines besseren belehren). In diesem Fall könntest du mit einfachen Images in Column 0 arbeiten. Da wäre es dann allerdings erforderlich, dass du in NodeLevel 0 und 1 entsprechend alle Children überprüfst. Und solltest du auf dieser Lösung dein Programm aufbauen, dann würde ich auch nicht mehr die Daten aus dem Tree sondern aus einer eigenen Klasse auslesen und dann entsprechend den State setzen.
|
AW: VirtualTreeView - Checkbox disablen
Die Daten sind in einem Objekt. Allerdings nutzen ich die Icons schon und es wäre daher schade, wenn ich diese anpassen bzw. ändern müsste...
Es kann ja auch eine Normale Checkbox sein. Dann würde das ganze ja so aus sehen...
Code:
//Keine Bearbeitung erforderlich
[x] Node_0 [x] Node_1 [x] Node_2a [x] Node_2b [x] Node_2c
Code:
//Bearbeitung erforderlich
[x] Node_0 [x] Node_1 [ ] Node_2a [x] Node_2b [ ] Node_2c
Code:
//Bearbeitung erforderlich
[ ] Node_0 [ ] Node_1 [ ] Node_2a [ ] Node_2b [ ] Node_2c |
AW: VirtualTreeView - Checkbox disablen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöle...:P
Was spricht gegen Icons statt der Checkboxen? Schöne Bildchen die den Status deines Objektes (am Node hängend) anzeigen...von mir aus in Ampelfarben. :thumb: Da hast du die Checkbox komplett aus dem Kreuz. |
AW: VirtualTreeView - Checkbox disablen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz