title image


Smiley und wieder mal Objectfreigabe im Treeview
hi leute,



vorab schon mal den Source:

(TNodeObj ist ein TObject mit Create und Destroy)



procedure LadeTVObj( Nodes : TTreeNodes; ms : TStream );

var a : integer;

NodeObj : TNodeObj;

begin

for a := 0 to Nodes.Count-1 do begin

NodeObj := TNodeObj.Create( Nodes[a]);

Nodes[a].Data := @NodeObj;

{*** jetzt mit Daten aus Stream fuellen ***}

if ms.Position < ms.Size then

with TNodeObj( Nodes[a].Data^ ), ms do begin

// etwas lang, deswegen nur der Kommentartext hier

end;

end;

end;



und jetzt kommst, wie bekomme ich die Freigabe das TNodeObj's auf welches

der Data-Pointer zeigt. im Form.OnClose gebacken ???

Ich habs bisher so: (aber da steht nur Müll drin)



procedure TfoMain.FormClose(Sender: TObject; var Action: TCloseAction);

var a : integer;

begin

for a := 0 to TV.Items.Count-1 do

if assigned(TV.Items[a].Data) then begin

TNodeObj( TV.Items[a].Data^ ).Free; //ohne (^) ???

TV.Items[a].Data := nil; // Pointer auf nil setzen

end;

end;



einen Konstruct wir (TV.Items[a].Data as TNodeObj).Free wird vom Compiler

nicht akzeptiert.



Danke Uwe



Achte auf deine Gedanken - Sie sind der Anfang deiner Taten.   (Chinesisches Sprichwort )



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: