Dzień dobry.
Jak odhaczając Checkbox dołączony do TreeView dodawać wybrane pliki do Listboxa w którym mamy playliste
Tutaj masz artykuł na temat programowania checkboxów w TreeView - Delphi TreeView with checkboxes.
Za obsługę zmiany stanu checkboxów odpowiada metoda ToggleTreeNodeCheckbox
:
const
TreeNodeChecked = 1;
TreeNodeUnChecked = 2;
procedure TMainForm.ToggleTreeNodeCheckbox(Node: TTreeNode);
begin
if Assigned(Node) then
begin
if Node.StateIndex = TreeNodeChecked then
Node.StateIndex := TreeNodeUnChecked
else
Node.StateIndex := TreeNodeChecked
end;
end;
Jeśli chcesz dodać własny kod działający po zmianie stanu znaznaczenia to wystarczy wywołania dwóch metod umieścić w dwóch miejscach drugiego warunku, po przypisaniu wartości do Node.StateIndex
:
procedure TMainForm.ToggleTreeNodeCheckbox(Node: TTreeNode);
begin
if not Assigned(Node) then Exit();
if Node.StateIndex = TreeNodeChecked then
begin
Node.StateIndex := TreeNodeUnChecked
// tu wywołanie metody obsługującej odznaczenie checkboxa
end
else
begin
Node.StateIndex := TreeNodeChecked
// tu wywołanie metody obsługującej zaznaczenie checkboxa
end;
end;
W tych dwóch wymienionych metodach oprogramuj sobie co tylko chcesz.
@furious programming:
trochę już drążyłem ten temat. Problemem jest to że obiekt klasy TtreeView nie ma prostej obsługi (typu "on coś tam") zdarzenia które zmienia status checkboxa podpiętego pod itema w TreeView
Samo "ToggleTreeNodeCheckbox", i to co dalej to już nie problem, tylko jak gdzie i kiedy wywołać tę metodę ?
Z braku czasu odpuściłem drążenie tematu.
Nieliczne przykłady w necie sugerują obsługę kliknięcia myszką i detekcję pozycji kursora nad TreeView ale kilka moich prób nie dało zadowalającego rezultatu .