Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   VST Node ausklappen (https://www.delphipraxis.net/214203-vst-node-ausklappen.html)

DieDolly 3. Dez 2023 11:29

VST Node ausklappen
 
Ich habe über die Jahre leider vergessen wie man einen Node ausklappt.

Mein VST bekommt die Daten von einer ObjectList. Jede Node hat ein Child. Das funktioniert auch. Aber ich möchte, nachdem alle Nodes im VST sind, alle aufklappen.
Delphi-Quellcode:
procedure TForm1.VSTInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var
 NodeData: TData;
begin
 NodeData := nil; // Valium for the compiler

 if Sender.GetNodeLevel(Node) = 0 then
  begin
   Include(InitialStates, ivsHasChildren);
   NodeData := DataClasses[Node.Index];
  end
 else
  begin
   NodeData := Node.Parent.GetData<TData>();
  end;

 Node.SetData<TData>(NodeData);
end;

procedure TForm1.VSTInitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal);
begin
 ChildCount := 1;
end;

procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var
 NodeData: TData;
begin
 NodeData := Node.GetData<TData>;
 if not Assigned(NodeData) then
  Exit;

 if Sender.GetNodeLevel(Node) = 0 then
  CellText := NodeData.FCaption
 else if Sender.GetNodeLevel(Node) = 1 then
  CellText := NodeData.FSubCaption;
end;

ergeka 3. Dez 2023 11:42

AW: VST Node ausklappen
 
Vielleicht zu kurz gedacht, aber 'FullExpand' klappt alle Nodes aus.

Gruß Ralf

Kas Ob. 3. Dez 2023 11:44

AW: VST Node ausklappen
 
Hi,

https://stackoverflow.com/questions/...when-using-obj

Code:
Expanded[Node] := TRUE;

DieDolly 3. Dez 2023 12:12

AW: VST Node ausklappen
 
Weder Expanded[] noch FullExpand bewirken komischerweise etwas.

Problem gelöst. Include(InitialStates, ivsExpanded); hat in Init gefehlt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz