Einzelnen Beitrag anzeigen

Benutzerbild von Coder1990
Coder1990

Registriert seit: 3. Nov 2007
116 Beiträge
 
Delphi 2005 Personal
 
#1

Aus Pointer Varialbe wiederherstellen funktioniert nicht

  Alt 14. Jul 2008, 01:16
Seas,

Delphi-Quellcode:
procedure TFmain.AddFileToSL(filename:string);
var
id:P_TID3Tag;
TID:TID3Tag;
begin
TID:=TID3Tag.Create;
id^:=TID; // vorher hatte ich das mal so: "id:=@TID" - ging auch nicht
if TID.ReadTag(filename) then begin
self.SL_Path.Add(filename);
self.SL_point.Add(inttostr(integer(id)));



with self.SG_1 do begin
  Cells[0,RowCount]:=ExtractFileName(filename);
  Cells[1,RowCount]:=TID.Titel;
  Cells[2,RowCount]:=TID.Artist;
  Cells[3,RowCount]:=TID.Album;
  RowCount:=RowCount+1;
  end;
                                end else
                                begin
                                TID.Free;
                                end;
end;
Delphi-Quellcode:
destructor TFMain.destroy;
var
i:integer;
id:P_TID3Tag;
TID:TID3Tag;
begin
for i:=0 to self.SL_Point.count do
begin
id:=P_TID3Tag(strtoint(self.SL_Point.Strings[i]));
TID:=id^;
TID.free;
end;
self.SL_Path.Free;
self.SL_Point.Free;
inherited destroy;
end;
Der Fehler kommt im Destructor .. ist irgendwas mit adresse nicht auslesbar oder so...
achja ich hab den code jetzt minimal modifiziert (den destructor), konnte es aber nicht mehr testen da nun überall in meinem programm andere fehler auftauchen, nachdem ich mehrmals die fehler meldung beim destructor bekommen hab (speicher iwie voll geschrieben oder wat?^^), vll geht mein restlicher code morgen nach nem reboot wieder ...

Also im groben speichert meine procci da oben einfach nen pointer als integer als string in ner stringlist und dieser wird später wieder als string als integer geladen und versucht wieder als pointer die variable wiederherzustellen
falls ich hier iwas an pointern falsch verstanden habe so ..
  Mit Zitat antworten Zitat