Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi virtualtreeview: Nodes zwischenspeichern (https://www.delphipraxis.net/189713-virtualtreeview-nodes-zwischenspeichern.html)

Mattze 12. Jul 2016 13:09

virtualtreeview: Nodes zwischenspeichern
 
Hallo,

wie kann man am besten Nodes einer VirtualTreeview (genauer: Virtualexplorerlistview) temporär im Programm "zwischenspeichern".
Prinzip:
VTV füllen, Nodes der VTV irgendwie zwischenspeichern, VTV.clear, VTV neu verwenden, VTV.clear,
Zwischengespeicherte Nodes zurück in die VTV.

(Ich brauche die Original-VTV zwischendurch, um etwas anderes zu machen - eine neue VTV wäre keine Lsg. und mit einer temporären VTV will es nicht - VTVTMP.assign(VTV)!)

Gruß
Mattze

Aviator 12. Jul 2016 13:16

AW: virtualtreeview: Nodes zwischenspeichern
 
Ich denke, dass das nicht die optimale Herangehensweise für dein Problem ist. So wie du das schilderst, lässt du die Daten von der Komponente "speichern/verwalten". Im Hintergrund sind das dann zwar meistens Records o.ä. aber die sind nach dem Clear ja nicht mehr verfügbar.

Deshalb solltest du dir die Daten in einer von dir verwalteten Liste (ObjectList oder so) speichern und dann je nach Status des VST die Daten aus der entsprechenden Liste laden.

Mattze 12. Jul 2016 14:18

AW: virtualtreeview: Nodes zwischenspeichern
 
Hi,

vielen Dank. Du hast mir mit der Objectlist (unbeabsichtigt) einen Tipp gegeben.

(Ich hätte nicht meinen eigenen Kommentar löschen sollen. Der war ungefähr:
Das ist natürlich Quatsch so, aber es verdeutlicht das Problem.
Es geht also nicht darum, ob ich "zwischendurch mit der originalen VTV Äpfel pflücken will", sondern nur darum, wie man die Nodes ("als Nodes") am besten außerhalb der VTV zwischenspeichert und dann wieder in die VTV zurückbekommt - was das geringere Problem ist.)

Gruß
Mattze

PMM 12. Jul 2016 14:48

AW: virtualtreeview: Nodes zwischenspeichern
 
Wichtig ist auch zu beachten, dass die VTV keine Push- sondern eine Pull-Semantic verwendet. Die Daten für die Knoten werden also erst nach Bedarf abgerufen. Sie sind also nicht zwingend alle bereits verfügbar. Im vom OP beschriebenen Fall (1. Füllen der Tree-View) mag das der Falle sein, in der Regel aber eher nicht.

Aviator 12. Jul 2016 15:12

AW: virtualtreeview: Nodes zwischenspeichern
 
Zitat:

Zitat von PMM (Beitrag 1342486)
Wichtig ist auch zu beachten, dass die VTV keine Push- sondern eine Pull-Semantic verwendet. Die Daten für die Knoten werden also erst nach Bedarf abgerufen. Sie sind also nicht zwingend alle bereits verfügbar. Im vom OP beschriebenen Fall (1. Füllen der Tree-View) mag das der Falle sein, in der Regel aber eher nicht.

Mir ist bewusst, wie ein VTV/VST funktioniert. Nur wollte der TE die Daten im VST zwischenspeichern und dann später wieder verwenden. Also müsste er ja auch dann schon alle Daten haben, damit nichts verloren geht. Also kann er sich die Daten auch gleich in einer eigenen Klasse speichern und die Instanzen der Klasse werden dann von einer ObjectList verwaltet. Somit muss er sich auch um die Freigabe nicht mehr kümmern und kann auch das OnFreeNode Event ignorieren.

Aber mal schauen was er so draus macht. Eventuell hören wir ja noch was von ihm.

Mattze 12. Jul 2016 15:45

AW: virtualtreeview: Nodes zwischenspeichern
 
Hi,

natürlich hört, äh, lest Ihr noch was von mir...

Um Knoten u. ä. brauche ich mich zum Glück nicht weiter zu kümmern.
Es ist eine Art TVirtualExplorerListview, ein Suchfenster, wie es in den Examples beschrieben ist.

Wenn ich es denn wirklich hinkriegen sollte, melde ich mich.

Gruß
Mattze


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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