AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein VirtualSourceTree selektierte Nodes löschen?
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualSourceTree selektierte Nodes löschen?

Ein Thema von SneakyBagels · begonnen am 17. Jun 2017 · letzter Beitrag vom 20. Jun 2017
 
SneakyBagels
(Gast)

n/a Beiträge
 
#1

VirtualSourceTree selektierte Nodes löschen?

  Alt 17. Jun 2017, 20:57
Ich habe folgenden Code geschrieben, um selektierte Nodes zu löschen
Delphi-Quellcode:
var
 Node, NodeTmp: PVirtualNode;
 i: Integer;
begin
 Node := VST.GetFirst;
 while Assigned(Node) do
  begin
   if VST.Selected[Node] then
    begin
     NodeTmp := VST.GetPreviousSibling(Node);

     VST.DeleteNode(Node);

     Node := NodeTmp;
    end;

   Node := VST.GetNextSibling(Node); // ich brauche nur Toplevel Nodes
  end;
end;
Das funktioniert wunderbar. Aber selektiert man nun auch den ersten Node, dann geht das in die Hose.
Ich habe gelesen, dass man den aktuellen Node zwischenspeichern muss, um später GetNextSibling() ausführen zu können.
Denn beim Löschen von Node geht die Referenz auf diesen verloren was zu einer AV führt.

Gibt es eine schönere Möglichkeit durch alles Nodes zu laufen und die selektierten zu löschen? Wichtig ist, dass ich das alles per Hand machen muss.
Einen Einzeiler kann ich, wenn es den gibt, leider nicht verwenden.

0815 wäre eventuell sogar noch... aber ist das noch konform?
Delphi-Quellcode:
var
 Data: TVSTData;
 i: Integer;
 NodeArray: TNodeArray;
begin
 NodeArray := VST.GetSortedSelection(False);
 for i := Low(NodeArray) to High(NodeArray) do
  begin
   VST.DeleteNode(NodeArray[i]); // Node "visuell" löschen
  end;

Geändert von SneakyBagels (17. Jun 2017 um 22:06 Uhr)
  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 09: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-2025 by Thomas Breitkreuz