Wer XE4 sein Eigen nennt muss sich mit solchen Unarten doch nicht mehr herumschlagen. Da baut man sich einen class Helper und gut ist:
Delphi-Quellcode:
HelperForComponent = class helper for TComponent
private
procedure SetTagObject( const Value: TObject );
function GetTagObject: TObject;
public
function TagObjectAs<T:class>: T;
property TagObject: TObject read GetTagObject write SetTagObject;
end;
function HelperForComponent.TagObjectAs<T>:T;
begin
if TagObject is T then
Result := TagObject as T
else
Result := nil;
end;
Die TagObject-Referenzen selber speichert man in einem Dictionary ab.
Freundlicherweise kann man sich von einem
TComponent
informieren lassen, wenn dieses aus dem Speicher fliegt, um das Dictionary auch entsprechend zu bereinigen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)