Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Dispose: Pointer oder Object?

  Alt 3. Feb 2009, 14:12
Komisch, wenn ich NACH dem Dispose die Record-Daten abfrage, bekomme ich bei beiden Dispose-Arten ein jeweils anderes Ergebnis:

Hier werden im zweiten MessageDlg die Record-Daten weiterhin angezeigt:

Delphi-Quellcode:
MessageDlg(PNoteRec(TL.Items[j].Data)^.Caption, mtInformation, [mbOK], 0);
Dispose(TL.Items[j].Data);
MessageDlg(PNoteRec(TL.Items[j].Data)^.Caption, mtInformation, [mbOK], 0);
Und hier wird im zweiten MessageDlg gähnende Leere angezeigt:

Delphi-Quellcode:
MessageDlg(PNoteRec(TL.Items[j].Data)^.Caption, mtInformation, [mbOK], 0);
Dispose(PNoteRec(TL.Items[j].Data));
MessageDlg(PNoteRec(TL.Items[j].Data)^.Caption, mtInformation, [mbOK], 0);
Bei beiden Dispose-Arten entsteht jedoch durch den Zugriffsversuch auf die Record-Daten NACH dem Dispose kein (Zeiger-)Fehler, obwohl mit Dispose der Speicher bzw. der Zeiger auf den Speicher ja freigegeben worden sein müsste!?
  Mit Zitat antworten Zitat