szerkesztése treeview

szerkesztése TreeView

Kérem, mondja, hogyan kell elkapni törlése esetén a TreeView csomópont módosítsuk a nevet, mert ez a név nem változott?

OnEditing megjegyezni a OnEdited COMPARE

A probléma az, hogy ha rögtön a szerkesztést, nyomja meg az Esc, majd OnEdited esemény nem kerül feldolgozásra egyáltalán.
Az érthetőség kedvéért, így a feladat, amit meg kell dönteni:
A TreeView gyermek csomópont jön létre a nevét a helyi menü „Új csoport”, és azonnal alkalmas arra, hogy módosítsa. Ha a felhasználó megváltoztatja a nevét, a csomópont marad, és ha nem - el kell távolítani. Ha megváltoztatja a nevét valóban feldolgozzák OnEdited, ha megnyomja az Esc - nincs.

Ha nincs pár OnEditing OnEdited, akkor.

eljárás TForm1.TreeView1Edited (Sender: TObject; Csomópont: TTreeNode;
var S: String);
kezdődik
TreeView1.Tag: = 0;
végén;

eljárás TForm1.TreeView1CustomDrawItem (Sender: TCustomTreeView;
Node: TTreeNode; Állam: TCustomDrawState; var DefaultDraw: logikai érték);
kezdődik
ha (TreeView1.Tag = 1) és (cdsFocused állapotban), majd
kezdődik
TTreeView (küldő) .items.Delete (Node);
TreeView1.Tag: = 0;
DefaultDraw: = false;
végén;
végén;

eljárás TForm1.TreeView1Editing (Sender: TObject; Csomópont: TTreeNode;
var AllowEdit: logikai érték);
kezdődik
TreeView1.Tag: = 1;
végén;

Várj egy percet. Majd megemészteni.

Több valószínűleg a OnExit kell tenni ugyanazt a tesztet

Félt, hogy tolakodó, de
1) Mi a Tag tulajdonság;
2) És hogy a kód működik egyáltalán?

Mégis itt van szükség:
eljárás TForm1.TreeView1Exit (Sender: TObject);
kezdődik
ha (TreeView1.Tag = 1), akkor
kezdődik
TreeView1.items.Delete (TreeView1.Selected);
TreeView1.Tag: = 0;
végén;
végén;

eljárás TForm1.TreeView1Deletion (Sender: TObject; Node: TTreeNode);
kezdődik
TreeView1.Repaint;
végén;

Sv-in Tag beállítása elején a szerkesztési 1. törlése esetén, vagy befejezése szerkesztő kerül a 0. segítségével bármilyen globális változót.
CustomDraw fordul elő, amikor újrarajzoláskor db-s. Ellenőrizze, hogy a szerkesztés megkezdéséhez (TreeView1.Tag = 1), és nem arra, hogy rögzítse (cdsFocused állapotban), és távolítsa el.
Több szerkesztő visszaállítás előfordulhat kimenetén a hangsúly a TreeView, így meg kell, hogy ellenőrizze OnExit.
Úgy tűnik, hogy a munka, de talán van egy út, és jobb. Ez az első dolog, ami eszébe jutott

Memória: 0,73 MB
Idő: 0.024 c

Kapcsolódó cikkek