Einzelnen Beitrag anzeigen

Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#52

AW: Referenzen auf ungültige Objekte

  Alt 2. Mär 2012, 21:44
Jeder Anfänger geht doch erst mal davon aus, dass nach
Delphi-Quellcode:
O := TObject.Create;
O1 := O;
O.Free;
O1 = nil ist.
[...]

Es gibt viele Lösungsmöglichkeiten, das von Dir beschriebene Problem anzugehen (viele davon wurden schon diskutiert).
Aber mich ausschließlich auf den Compiler verlassen!? Nicht wirklich.

Mal ein Gegenbeispiel für den Aufwand, der entstehen würde:
Eine Objektreferenz wird in einer TObjectList gespeichert. Diese wird aufgelöst, bevor das Objekt freigegeben wird. Und nun!? Jetzt müßte Code generiert werden, wie und ob auf die Objektreferenz überhaupt noch zugegriffen werden kann.

Ich denke, der einfachste und sicherste Weg ist eine saubere Programmierung im Einzelfall - auf für weniger anspruchsvolle Programmierer wie mich...
Ein knappes Jahr später kann ich dazu nur noch sagen:

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:
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;
Natürlich erscheint die erste Meldung.
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat