AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Pointer existiert, das Objekt dahinter nicht. Wie zuverlässig prüfen?
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer existiert, das Objekt dahinter nicht. Wie zuverlässig prüfen?

Ein Thema von uups · begonnen am 4. Feb 2019 · letzter Beitrag vom 7. Feb 2019
 
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
561 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Pointer existiert, das Objekt dahinter nicht. Wie zuverlässig prüfen?

  Alt 4. Feb 2019, 16:43
Nein.

Du musst selbst dafür sorgen, dass die Referenz auf NIL (Not in List) gesetzt wird oder gültig bleibt.

Alles andere führt zu einem Verwaltungsaufwand der noch dazu dein Klassendesign beeinträchtigt von der Programmarchitektur ganz zu schweigen. Transparent geht es nicht. Am Ende läuft jede Strategie drauf hinaus indirekte Referenzen zu halten, die Klasse am Ende ihre Objekte selbst verwaltet und den Overhead muss man aufwiegen mit der Vereinfachung anderorts bspw. beim Iterieren über Container. Proxyobjekte oder Nullobjekte usw...

Du kannst bspw. das Auftreten solcher Situation zu vermeiden mit TObjectList arbeiten. In Delphi gilt an sich das Vermeiden dieser Abfrage als geboten.



Hallo!

Sagen wir, es gibt ein Objekt und ein Pointer, das auf dieses Objekt zeigt. Irgendwann wird das Object freigegeben, Pointer zeigt aber immer noch darauf. Die Prüfung mit Assigned(Pointer) ist erfolgreich und erst beim Versuch, auf das Object dahinter zuzugreifen kommt die AV.

Gibt es eine zuverlässige Möglichkeit zu prüfen, ob ein Objekt hinter einem "gültigen" Pointer noch existiert?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz