Einzelnen Beitrag anzeigen

Golze

Registriert seit: 26. Aug 2004
Ort: Berlin
32 Beiträge
 
Delphi 5 Enterprise
 
#10

Re: Objekt prüfen, ob es noch existiert oder zerstört ist.

  Alt 1. Sep 2004, 07:43
Hallo Sprint,
vielen Dank für deine guten Hinweise. Mein Problem kommt daher, daß ich hauptsächlich mit Threads und DLL's Form in unterschiedlichen Zuständen verwalten muß. Deshalb kann über Application.CreeateForm das nicht funktionieren. Ich habe aber mir in den letzten Stunden eine Lösung zurechtgebastelt. Mußte mal meinen Debugger im Hirn einschalten. Hat auch funktioniert.

Lösungsansatz. Wenn ein Objekt instanziiert wird, erhält die "Erinnerungsverwaltung" (Memory Management) den Auftrag dafür Speicher zur Verfügung zu stellen. Also kann auch nur das Memory Management letztendlich darüber entscheiden, ob ein Objekt noch grundsätzlich gültig ist oder nicht. Ergo muß ich also das Memory Management von Windows fragen, ob der Zurgriff darauf noch möglich ist oder nicht. Das geht dann wie folgt:
Delphi-Quellcode:
function AssignedObject(var aObject): Boolean;
begin
  Result := False;
  try
    if Assigned(TObject(aObject)) then
      Result := not IsBadHugeReadPtr(TObject(aObject),
                        TObject(aObject).InstanceSize);
  except
    Result := False;
  end;
end;
Ich habe es mal unter verschiedenen Zuständen getestet. Funktioniert gut. Siehst du noch Fehler?
Wie kann ich nur diese verdammten Smilies in den Text einbinden....
Kay Golze
  Mit Zitat antworten Zitat