Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
4. Feb 2009
OnDelete würde doch auch reichen?
// TreeView.OnDeletion
Procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
Begin
If Assigned(Node.Data) Then Dispose(PNoteRec(Node.Data));
End;
New(NoteRecPtr);
NoteRecPtr.Caption := 'XYZ';
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
3. Feb 2009
nach dem Freigeben von Speicher sollte man eh nicht mehr versuchen darauf zuzugreifen.
Nur weil mit Dispose (oder sonstwas) spehcer freigegeben wurde, kann ers sein, daß dieser dennoch vom Speichermanager reserviert ist (schlimmstenfalls wird dieser Speicher sogar inzwischen für was Anderes verwendet)
bei Dispose werden die Strings freigegeben, wobei der interne Stringzeiger nun auf NIL...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
3. Feb 2009
Hmmm, eigentlich müßte ein Leck entstehen ... wie hast'n das getestet?
Etwas Code wäre nett, nicht daß du über einen der Sonderfälle bei den Strings gestolpert bist :angel2:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
3. Feb 2009
Hat die TreeView nicht ein Ereignis für NodeWirdFreigegeben?
Also ich würde das Freigeben dann dort drin machen.
Und jbg hat Recht.