shidqul

TreeViewCheckBox_Code_2

Sep 2nd, 2019
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.16 KB | None | 0 0
  1. procedure ToggleTreeView(Node: TTreeNode; CheckedBox, UncheckedBox, CheckedNotAll: Integer);
  2. var
  3.  i: Integer;
  4.  
  5.  function ChildSelectAll(Node: TTreeNode; Checked, Unchecked: Integer): Boolean;
  6.   var
  7.    x: Integer;
  8.   begin
  9.    for x:=0 to Node.Count-1 do
  10.     begin
  11.      if Node.Item[x].StateIndex = Checked then
  12.       Result := True
  13.      else if Node.Item[x].StateIndex = Unchecked then
  14.       begin
  15.        Result := False;
  16.        Exit;
  17.       end;
  18.     end;
  19.   end;
  20. begin
  21.  if Assigned(Node) then
  22.   begin
  23.    // Untuk per Node
  24.    if (Node.StateIndex = UncheckedBox) or
  25.       (Node.StateIndex = CheckedNotAll) then
  26.     Node.StateIndex := CheckedBox
  27.    else
  28.     Node.StateIndex := UncheckedBox;
  29.  
  30.    // Jika Node Parent di Klik, Semua Node Child AutoChecked
  31.    if Node.Level = 0 then
  32.     begin
  33.      for i:=0 to Node.Count-1 do
  34.       begin
  35.        Node.Item[i].StateIndex := Node.StateIndex;
  36.       end;
  37.     end;
  38.  
  39.    if Node.Level = 1 then
  40.     begin
  41.      case ChildSelectAll(Node.Parent, CheckedBox, UncheckedBox) of
  42.       true  : Node.Parent.StateIndex := CheckedBox;
  43.       false : Node.Parent.StateIndex := CheckedNotAll;
  44.      end;
  45.     end;
  46.   end;
  47. end;
Advertisement
Add Comment
Please, Sign In to add comment