Danke für die antwort.
Wie kann ich den jetzt z.B. herausfinden ob auf das "plus"(Expandier) Symbol geklickt wurde,
weil ich erst dan die neue struktur erzeugen möchte.
hmmm, irgendwie krieg ich dass jetzt immer noch nicht ganz gebacken.
Also mein Ereignis sieht jetzt so aus:
Delphi-Quellcode:
procedure TForm1.VSTClick(Sender: TObject);
var
TreeObject : TTreeDataClass;
node,Childnode : PVirtualNode;
Data : PTreeData;
ME : TModuleEntry32;
hME : THandle;
begin
Vst.NodeDataSize:=SizeOf(TTreeData);
Vst.BeginUpdate;
try
hME := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, (GetProcID('Explorer.exe')));
ME.dwSize := sizeof(TModuleEntry32);
Module32First(hMe, ME);
repeat
TreeObject := TTreeDataClass.Create;
with TreeObject do
begin
Modulename:= ME.szModule;
ModulePath:= ME.szExePath;
ProcUseCount:= ME.ProccntUsage;
ModuleIconindex:= GetIconIndex(ME.szExePath, SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_OPENICON);
//Aus dem Modulenamen nur den typ beibehalten
ms:= ME.szModule;
ts:= Copy(ms,Pos('.',ms)+1,length(ms));
ModuleFileTyp:= ts;
end;
Childnode:= FindPLANNodeByGroupID(Vst,0); //Mit 0 mein ich ja das ich den ersten child node des rootnodes will
AddVSTStructure(VST,Childnode:= ,TreeObject);
until (not Module32Next(hMe, ME));
CloseHandle(hME);
Vst.EndUpdate;
except
TreeObject.free; //Object der Module
end;
end;
////////// und in diesem ereignis möchte ich halt die einzelnen childnodes unterscheiden können, um den Text darstellen zu ///////// können
procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
Data: PTreeData;
begin
Data := Sender.GetNodeData(Node);
case Column of
0: begin
if (Sender.GetNodeLevel(Node) = 0) Then
CellText := TTreeDataClass(Data.FObject).ProcName
else if (Sender.GetNodeLevel(Node) = 1) Then
CellText := TTreeDataClass(Data.FObject).FLevelHeader
else if (Sender.GetNodeLevel(Node) = 2) and (Vst.ChildCount[Node] = 0) Then //Das funktioniert halt nicht
CellText := TTreeDataClass(Data.FObject).Modulename
else if (Sender.GetNodeLevel(Node) = 2) and (Vst.ChildCount[Node] = 1) Then
CellText := TTreeDataClass(Data.FObject).FunktionsName
else if (Sender.GetNodeLevel(Node) = 2) and (Vst.ChildCount[Node] = 2) Then
CellText := TTreeDataClass(Data.FObject).Exportdll;
end;
end;
end;
Im Screenshot kann mans villeicht besser erkennen.
Die jeweiligen Childnodes die man sieht müßen noch geüllt werden. Sie sollen einzeln gefüllt werden wenn man auf das expandier symbol klickt, auf dem screen sieht man schon die colapsed situation jedoch sind die childnodes noch nicht geüllt.
kann man das machen?