Einzelnen Beitrag anzeigen

Viktorii

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

Re: VirtualTreeView: Alle Knoten freigeben

  Alt 25. Nov 2008, 14:54
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....
  Mit Zitat antworten Zitat