![]() |
AW: Referenzen auf ungültige Objekte
Nachtrag zum Beitrag #45, falls es mal jemand nachbaut...
Es ist noch folgende Änderung notwendig:
Delphi-Quellcode:
(Ich kann den Beitrag leider nicht mehr editieren.)
procedure Tod._RemoveRef(od: Tod);
begin if (csDestroying in ComponentState) then Exit; if not Assigned(FRefList) then Exit; FRefList.Remove(od); if FRefList.Count = 0 then FreeAndNil(FRefList); end; procedure Tod._RemoveFromRefList(od: Tod); begin if (csDestroying in ComponentState) then Exit; if Assigned(FRefList) then FRefList.Remove(od); end; |
AW: Referenzen auf ungültige Objekte
Zitat:
Du hast vollkommen Recht, stahli: Es gibt durchaus sinnvolle Anwendungsmöglichkeiten für ein derartiges Verhalten und ich habe inzwischen auch Situationen gefunden, in denen das sogar zwingend notwendig ist. Inzwischen funktioniert es auch:
Delphi-Quellcode:
Natürlich erscheint die erste Meldung. :-D
procedure TForm1.Button1Click(Sender: TObject);
var o, o1: INotify; begin o:=TNotifyObject.Create; o1:=o; o.Free; if not assigned(o) and not assigned(o1) then ShowMessage('Toll!') else ShowMessage('War wohl nichts...'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 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