Registriert seit: 13. Jan 2005
18 Beiträge
|
Treeview_Change "rückgängig" machen, Selected-Eige
22. Mär 2005, 10:16
Folgendes Problem:
Beim Anklicken eines Nodes im Treeview wird das Change_ereignis ausgelöst.
in diesem finden bei mir Überprüfungen statt.
Ich habe unter anderem Folgende Zeile im Code.
treeview1.Items[inttreeselected].Selected := true
Sinn und Zweck: Bei einer fehlgeschlagenen Überprüfung soll der zuvor aktive Node wieder als aktiv dargestellt werden.
Jetzt hab ich aber das Problem, dass diese Zeile wiederum anscheinend auch ein Change-Ereignis
auslöst und der Code also ein zweites mal durchlaufen wird.
Gibt es eine Einfache Möglichkeit, um einen Node aktiv zu setzen, ohne, dass dieses Ereignis eintritt?
Oder hab ich schon die Lösung, auch wenn es nciht elegant aussieht:
if (inttreeanswer = 0)then
begin
antwort := MessageDlg(('Werte wurden geändert. Speichern?'), mtConfirmation,
[mbYes, mbNo, mbCancel], 0);
if antwort = mrCancel then
begin
inttreeanswer := 1;
treeview1.Items[inttreeselected].Selected := true ;
inttreeanswer := 0;
end;
end;
Zusätzliche Anmerkung: Dies ist nur eine Kurzfassung des eigentlichen Problems, es finden viel mehr Überprüfungen statt. hab ein Notizzettel-Programm, wo ich dann beim Node-wechsel die Änderungen speichere, wobei die Betreffes halt im Treeview angezeigt werden.
|