AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView - Checkbox disablen

Ein Thema von himitsu · begonnen am 2. Nov 2006 · letzter Beitrag vom 20. Feb 2016
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#11

AW: VirtualTreeView - Checkbox disablen

  Alt 19. Feb 2016, 22:23
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: VirtualTreeView - Checkbox disablen

  Alt 19. Feb 2016, 22:59
In diesem Fall würde ich einfach das OnChecking Event implementieren und den Parameter Allowed (immer) auf false stellen.

Delphi-Quellcode:
procedure TfrmMain.vstChecking(Sender: TBaseVirtualTree; Node: PVirtualNode; var NewState: TCheckState;
  var Allowed: Boolean);
begin
  Allowed := False;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#13

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 09:27
Das ist richtig, aber dann kann ich den Checkstate auch nicht mehr setzen... Ich will ja nur das OnClick verhindern.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 09:39
Brauchst du den CheckState für die Anzeige oder nur als internen Status?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#15

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 11:50
Das ist richtig, aber dann kann ich den Checkstate auch nicht mehr setzen... Ich will ja nur das OnClick verhindern.
Leider verstehe ich deine Aussage gerade nicht. Könntest du da etwas genauer werden? Zum einem willst du das die Checkbox disabled ist, auf der anderen Seite soll dann aber ein CheckState gesetzt werden. Ich habe es jetzt nicht ausprobiert, aber wird das OnChecking Event auch ausgelöst, wenn man per Quellcode vst.IsChecked[Node] := true; 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 true steht wenn du aus dem Programm heraus den CheckState der Node verändern willst, aber auf false ist, wenn der Benutzer eine Aktion ausführt. Und die Variable wird dann im OnChecking Event geprüft.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#16

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 13:38
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 14:00
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.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#18

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 14:17
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#19

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 18:00
Hallöle...

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. Da hast du die Checkbox komplett aus dem Kreuz.
Miniaturansicht angehängter Grafiken
node-bildchen.png  

Geändert von haentschman (20. Feb 2016 um 18:03 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#20

AW: VirtualTreeView - Checkbox disablen

  Alt 20. Feb 2016, 18:05
Hallöle...

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. Da hast du die Checkbox komplett aus dem Kreuz.
Das Problem ist, dass er die Images schon für andere Zwecke benutzt. Hatte ich ja auch schon vorgeschlagen. Siehe letzter Post von mir.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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