Vielen Dank für eure Hilfe, habe es nun hinbekommen teilweise mit einem Artikel aus eienr Tippsammlung und den Rest selbst zusammengefummelt, habe es wie folgt gelöst:
Vorab:
TWTitelbaum bezeichnet meine TTreeviewkomponente
offene ist ein dynamisches Arry vom Typ String
Als erstes speichere ich alle offenen Knoten bzw. deren namen in dem Array offene
Delphi-Quellcode:
procedure TForm1.Titelbaumoeffnungmerken;
var
i,j,k:Integer;
Anzahloffener:Integer;
begin
k:=0;
for i := 0 to TWTitelbaum.Items.Count - 1 do
begin
If TWTitelbaum.Items[i].Expanded = True then
begin
Anzahloffener := Anzahloffener + 1;
end;
end;
SetLength(offene, Anzahloffener);
for j := 0 to TWTitelbaum.Items.Count - 1 do
begin
If TWTitelbaum.Items[j].Expanded = True then
begin
offene[k] := TWTitelbaum.Items[j].Text;
k := k + 1;
end;
end;
end;
Danach habe ich im Netz eine Suchfunktion gefunden wie man nach dem text von Knoten sucht (swissdelphicenter.ch)
Delphi-Quellcode:
function TForm1.ItemSuche(TV: TTreeView; SucheItem: string): TTreeNode;
var
i: Integer;
iItem: string;
begin
if (TV = nil) or (SucheItem = '') then Exit;
for i := 0 to TV.Items.Count - 1 do
begin
iItem := TV.Items[i].Text;
if SucheItem = iItem then
begin
Result := TV.Items[i];
Exit;
end
else
begin
Result := nil;
end;
end;
end;
Und als letztes eine Funktion die alle gespeicherten Knoten sucht und wenn sie geufnden sind, diese öffnet
Delphi-Quellcode:
procedure Tform1.Titelbaumoeffnungherstellen;
var
i:Integer;
begin
for i := 0 to high(offene) do
begin
If Itemsuche(TWTitelbaum,offene[i]) <> nil then //*Update* Fehler abfangen falls der Knoten nciht mehr existiert
Itemsuche(TWTitelbaum,offene[i]).Expand(False);
end;
end;
Wenn jemand zu der Lösung noch fragen hat ruhig fragen *g*
Vielen Dank für eure Hilfe!