Z Checkbox w TreeView do Listboxa

0

Dzień dobry.
Jak odhaczając Checkbox dołączony do TreeView dodawać wybrane pliki do Listboxa w którym mamy playliste

1

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.

0

@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 .

1 użytkowników online, w tym zalogowanych: 0, gości: 1