AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView - Freigabe der Daten

Ein Thema von Viktorii · begonnen am 4. Sep 2008 · letzter Beitrag vom 8. Sep 2008
Antwort Antwort
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#1

VirtualTreeView - Freigabe der Daten

  Alt 4. Sep 2008, 15:20
Hallo.
Wenn ich bei VirtualTreeView Daten wieder freigeben möchte, steht dazu in der Doku:

Zitat:
Bei Strings reicht es auch, die Variable auf
einen Leerstring zu setzen.
Wie mache ich das, wenn mein Record auch Integer, Boolean usw. enthält?
Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#2

Re: VirtualTreeView - Freigabe der Daten

  Alt 4. Sep 2008, 15:23
entweder .free oder integer:= 0; boolean := false;..
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: VirtualTreeView - Freigabe der Daten

  Alt 4. Sep 2008, 15:25
Du übergibst die Daten ja als Zeiger und solche werden mit Dispose freigegeben.

[edit] Nachtrag: Dispose, wenn sie mit New angelegt wurden, bei GetMem mit FreeMem freigeben. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#4

Re: VirtualTreeView - Freigabe der Daten

  Alt 4. Sep 2008, 16:24
Da stehe ich jetzt aber etwas auf dem Schlauch....


Erst definier ich mir mein Record:
Delphi-Quellcode:
  PTreeData = ^TTreeData;
  TTreeData = record
                Tag : Integer;
                Conflict : Boolean;
                Column : array[0..6] of string;
              end;


Dann mach ich mir ein paar Nodes mit den Daten mit dieser Funktion:
Delphi-Quellcode:
function TVirtualStringTreeBFInfo.AddVSTStructure(AVST : TCustomVirtualStringTree;
                                                  ANode : PVirtualNode;
                                                  ARecord : TTreeData): PVirtualNode;
var
  pData : PTreeData;

begin
  Result := AVST.AddChild(ANode);
  pData := AVST.GetNodeData(Result);
  Avst.ValidateNode(Result, False);

  pData^.Conflict := ARecord.Conflict;
  pData^.Tag := ARecord.Tag;
  pData^.Column[0] := ARecord.Column[0];
  pData^.Column[1] := ARecord.Column[1];
  pData^.Column[2] := ARecord.Column[2];
  pData^.Column[3] := ARecord.Column[3];
  pData^.Column[4] := ARecord.Column[4];
  pData^.Column[5] := ARecord.Column[5];
  pData^.Column[6] := ARecord.Column[6];

end;
Ich habe also weder new noch getmem genutzt.

  Mit Zitat antworten Zitat
Hawkeye219

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

Re: VirtualTreeView - Freigabe der Daten

  Alt 4. Sep 2008, 16:46
Hallo Viktorii,

für die Freigabe der Daten genügt es in deinem Fall, den Record in der Behandlungsroutine für das Ereignis OnFreeNode zu finalisieren:

Delphi-Quellcode:
procedure TVirtualStringTreeBFInfo.AVSTFreeNode (
            Sender : TBaseVirtualTree;
            Node : PVirtualNode
          );
var
  Data : PTreeData;
begin
  Data := Sender.GetNodeData(Node);
  Finalize (Data^);
end;
Nur wenn der Record Zeiger auf Speicherbereiche enthält, die du manuell angefordert hast, musst du diesen Speicher vor dem Finalisieren auch manuell wieder freigeben.

Gruß Hawkeye
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#6

Re: VirtualTreeView - Freigabe der Daten

  Alt 4. Sep 2008, 16:54
Normal brauchst du nicht freigeben, es sei den du nutzt Zeiger Typen.
Also Strings und alles was von TObject vererbt ist.

Schau die mal das Stammtischvideo zum VST an.
Dort zeige ich mit dem FastMM / VST die Tricks.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#7

Re: VirtualTreeView - Freigabe der Daten

  Alt 8. Sep 2008, 15:29
Zitat von generic:
... Stammtischvideo ...
?? Wo ??
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: VirtualTreeView - Freigabe der Daten

  Alt 8. Sep 2008, 15:33
Hier
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:57 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