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....