AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein VirtualStringTree - zuweisen von RootNodeCount
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree - zuweisen von RootNodeCount

Ein Thema von günni0 · begonnen am 15. Apr 2018 · letzter Beitrag vom 15. Apr 2018
 
günni0
(Gast)

n/a Beiträge
 
#7

AW: VirtualStringTree - zuweisen von RootNodeCount

  Alt 15. Apr 2018, 14:57
Zitat:
Tipp: Speichere deine Instanzen in einer TObjectList<T> ab. Somit brauchst du später nicht mehr auf den Tree zuzugreifen wenn du mit den Instanzen arbeiten willst.
Habe ich zum Glück schon so.

Ich denke ich bleibe dann dabei, dass ich initial beim Programmablauf meine Daten lade, die Klasseninstanzen erstelle, in die ObjectList packe und ganz zum Schluss RootNodeCount setze.
Wenn ich im Laufe des Programms eine Instanz / Node löschen muss, mache ich das so

Delphi-Quellcode:
Function ... GetNodeByIndex(iIndex : Integer) : PVirtualNode; // Quelle: siehe unten
begin
 Result := VST.GetFirst(True);
 while Assigned(Result) and (vst.AbsoluteIndex(Result) <> iIndex) do
  Result := Vst.GetNext(Result, True);
end;
// Was besser ist, Beitrag 7 oder 11, weiß ich nicht
// 7 : https://www.delphipraxis.net/963615-post7.html
// 11: https://www.delphipraxis.net/1220760-post11.html

procedure ...
var
 Node: PVirtualNode;
begin
 Node := GetNodeByIndex(2);
 if Assigned(Node) then
  VST.DeleteNode(Node);
end;
Damit wird auch gleich mein Eintrag aus der ObjectList gelöscht.
Danach kann ich mit meiner Prozedur ErstelleInstanz(2, True) wieder einen neuen Eintrag an Position 2 (absolut 3) hinzufügen

Delphi-Quellcode:
procedure ErstelleInstanz(InsertAtPosition: Integer = -1; SetRootCount: Boolean = True);
begin
 _UserData := TUserData.Create;
 _UserData.Index := _UserDataClasses.Count;

 _UserData.A := 1;
 _UserData.B := 2;
 ...
 ...

 if InsertAtPosition > -1 then
  _UserDataClasses.Insert(InsertAtPosition, _UserData)
 else
  _UserDataClasses.Add(_UserData);

 if SetrootCount then
  _VST.RootNodeCount := _UserDataClasses.Count;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz