Delphi-PRAXiS
Seite 3 von 3     123

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pointer existiert, das Objekt dahinter nicht. Wie zuverlässig prüfen? (https://www.delphipraxis.net/199591-pointer-existiert-das-objekt-dahinter-nicht-wie-zuverlaessig-pruefen.html)

hoika 7. Feb 2019 01:22

AW: Pointer existiert, das Objekt dahinter nicht. Wie zuverlässig prüfen?
 
Hallo,
ich denke, die Prüfung geht auch mit Interfaces nicht,
ohne selbst eine Art Notification-Sache zu implementieren.

PS:
Im Moment erschließt sich mir die Notwendigkeit der ganzen Sache auch nicht
-> es sei denn, der Entwickler will irgendwas "faules" machen ;)

Uwe Raabe 7. Feb 2019 09:27

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

Zitat von jus (Beitrag 1424919)
Doch die eigentliche Frage ist ja, wie man mit Hilfe von Interfaces mitten im Programm überprüfen kann, ob das Objekt noch da ist

Die Frage stellt sich bei korrekter Implementation gar nicht. Solange noch eine Interface-Variable das Interface hält ist die Instanz auch noch da. Ein Interface implementierendes Objekt wird niemals direkt freigegeben, sondern ausschließlich innerhalb eines _Release, wenn dieses den internen RefCount auf 0 setzt. Das ist der Sinn hinter den IInterface-Methoden _AddRef und _Release.

Will oder muss man diesen Weg verlassen, kommt man um irgendeinen Notification-Mechanismus nicht herum.

p80286 7. Feb 2019 11:11

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

Zitat von hoika (Beitrag 1424920)
Hallo,
ich denke, die Prüfung geht auch mit Interfaces nicht,
ohne selbst eine Art Notification-Sache zu implementieren.

PS:
Im Moment erschließt sich mir die Notwendigkeit der ganzen Sache auch nicht
-> es sei denn, der Entwickler will irgendwas "faules" machen ;)

Wieso? Ein Pointer ist eine Adresse, es ist schon von Interesse, ob sich an der Adresse das befindet, was man erwartet. Würde der TE mit "normalen" Variablen oder normierten Schnittstellen arbeiten würde sich auch die Frage nicht stellen.
Ich vermute er hat irgendein Pointer-Voodoo gelesen und versucht das an einem untauglichen Objekt umzusetzen.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 Uhr.
Seite 3 von 3     123

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz