Cześć, chcę, żeby moje drzewko miało takie właściwości jakby drzewko checkboxów. Czyli można gałąź zaptaszkować(razem z ewentualnymi dziećmi), bądź odptaszkować.
Do tego celu napisałem sobie klasę, której jedną z metod jest metoda o nazwie Click(wywoływana w OnClick drzewa).
Całość oczywiście opiera się na ImageList i dwóch obrazkach(z ptaszkiem i bez)
I teraz w metodzie Click, pierwsza instrukcja to:
P:=FTree.SCreenToClient(Mouse.CursorPos);
Node:=FTree.GetNodeAt(P.X, P.Y);
W większości zwracany jest odpowiedni Node, ale czasem współrzędne tego punktu są wzięte z kosmosu. Czemu?
Gdy już jestem pewien, ze mam Node'a, zmieniam mu ImageIndex:
if Node.ImageIndex = 0 then Node.ImageIndex:=1 else Node.ImageIndex:=0;
//i rekurencyjnie zmieniam image index ewentualnym dzieciom(jeśli jest na 1 - czyli z ptaszkiem)
Niestety to średnio działa.
Bo po 1. Gałąź nadrzędna nie zmienia swojego obrazka w ogóle NIGDY, a podrzędne zmieniają inaczej niż powinny i to tylko czasami.
Coś muszę jeszcze zrobić?