AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Tvirtualtreeview und DeleteChildren(Node);

Ein Thema von hanspeter · begonnen am 20. Sep 2006 · letzter Beitrag vom 20. Sep 2006
Antwort Antwort
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Tvirtualtreeview und DeleteChildren(Node);

  Alt 20. Sep 2006, 10:24
Hallo,
ich setze das VirtualTreeview ein und möchte hier manuell Knoten (inclusive Child)
löschen.

Das erfolgt mit VST.DeleteChildren(Node).

nun muss ich aber die als Zeiger verlinkten Daten mit freigeben.
Dazu habe ich einen Eventhandler der über "onBeforeItemErase" der das tun soll.

Mein Problem ist jetzt, das VST bei jedem notwendigen Neuzeichnen des Baumes die Knoten
löscht und damit onBeforeItemErase aufruft.

Wie kann ich erkennen, ob das Löschen über die Delete Funktion aufgerufen wurde:

Beim Borland Treeview funktionierte das.
Bei VST werden die Sätze offensichtlich erst markiert und dann später timergesteuert gelöscht.

Damit funktioniert die Sequenz nicht:

isDeletemode := true;
VST.DeleteChildren(Node);
isDeletemode := false;


Hat wer eine Idee?

Mit Gruß

hanspeter
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Tvirtualtreeview und DeleteChildren(Node);

  Alt 20. Sep 2006, 10:40
Hallo hanspeter,

du hast das falsche Ereignis erwischt! Versuche einmal, die Daten in der Behandlungsroutine für das Ereignis OnFreeNode freizugeben. Das Ereignis OnBeforeItemErase wird ausschließlich für die Darstellung benötigt.

Gruß Hawkeye
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Tvirtualtreeview und DeleteChildren(Node);

  Alt 20. Sep 2006, 11:01
Zitat von Hawkeye219:
Hallo hanspeter,

du hast das falsche Ereignis erwischt! Versuche einmal, die Daten in der Behandlungsroutine für das Ereignis OnFreeNode freizugeben. Das Ereignis OnBeforeItemErase wird ausschließlich für die Darstellung benötigt.

Gruß Hawkeye
Man hab ich Tomaten auf den Augen?

Danke jetzt geht es.
Der eigentliche Löschvorgang muß auch über ein Flag gekapselt werden, da die Funktion
im laufenden Betrieb mehrfach aufgerufen wird.

Gruß Peter
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:08 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