Witam. Walcze z treeview w delphi i wlasnie zastanawiam sie czy ma on obsluge powiadomien taka jak w c++. Generalnie chodzi o wykonanie jakiejś akcji po kliknieciu na ktorys items z drzewka treeview. Czy istnieje cos w stylu TVN_SELCHANGED albo NM_RCLICK w delphi zeby obsluzyc takie zdarzenie? Bylbym wdzieczny o jakas wskazoweczke w tym temacie
Ja bym wykorzystał zdarzeni OnClick obiektu TTreeView.
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected.Index = IndexPotrzebnegoTreeNode then ZróbCoś;
end;
ewentualnie, jeżeli chcesz obsługiwać więcej nodów to możesz zastosować konstrukcję z case
procedure TForm1.TreeView1Click(Sender: TObject);
begin
case Listview1.Selected.Index of
1 : Akcja dla noda 1;
2 : Akcja dla noda 2;
3 : Akcja dla noda 3;
else
Akcja dla pozostałych nodów;
end;
end;
równie dobrze możesz sprawdzać nie index zaznaczonego noda ale jego wartość (tekst znaczy się) albo co tam jeszcze chcesz.
W zdarzeniu OnChange dostajesz w parametrze klikniętego Noda.
Wielkie dzieki :-) Mam jeszcze jedno pytanko. Orientujecie sie co jest z numeracja nodow, otoz mam jeden nod glowny i kilka subnodow, problem z tym ze rozpoczalem numeracje nodow od 0 i teraz akcja dla noda zero pojawia sie zarowno dla glownego noda jak i pierwszego z subnodow. Natomiast gdy zaczalem numerowac od 1 to dziala ale od drugiego subnoda. Wiecie jak ten problem rozwiazac, jak rozdzielic akcje dla noda glownego i pierwszego subnoda?
MyNode.AbsoluteIndex
Probowalem poindektowac itemy z poziomu buildera przez treeview items editor, ale problem pozostaje nadal ten sam