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ć?