Zitat von
hoika:
Hallo,
zeige doch mal deinen Code beim OnFreeNode.
Delphi-Quellcode:
procedure TMainForm.VirtualStringTreeConsoleFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
ParsedData: TParsedData;
begin
if assigned(node) then
begin
ParsedData := TParsedData(Sender.getnodedata(node)^);
if Assigned(ParsedData) then
FreeAndNil(ParsedData); // <-- AccessViolation
end;
end;
Zitat von
DeddyH:
Das Event wird ausgelöst, wenn ein Knoten gelöscht wird. Irgendwo gab es doch mal ein brauchbares Tut zum VST, da stand das auch drin.
Okay, ich glaube das habe ich jetzt verstanden. Wenn ich .claer ausführe, werden die Konten
gelöscht und das Event OnFreeNode wird ausgelöst. Und dort kann ich dann den Knoten
freigeben. Ist das richtig so? Habe löschen und freigeben bis jetzt immer schön in einen Topf geworfen
Allderings kommt bei FreeAndNil eine
Exception:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt ParserDelphi2006.exe ist eine
Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 00403F64 in Modul 'RS422LogParserDelphi2006.exe'. Lesen von Adresse 333A342D' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Zitat von
DeddyH:
Und was spaxxn meint: willst Du wirklich das Objekt "begin" freigeben?
Hoppla, da hat sich wohl der Copy&Paste-Fehlerteufel eingeschlichen
Meine natürlich
FreeAndNil(MyItem);
Zitat von
DeddyH:
[edit] Hab das
Tut gefunden. [/edit]
Vielen Dank für den Link. Habe ich mir auch schon mal angeschaut....