Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Aus DLL auf MainForm Komponenten zugreifen

  Alt 15. Jun 2008, 19:16
Sparst du mit den Packages nicht mehr, als du verlierst?

Ein neuer as-Operator dürfte nicht allzu schwer sein, allerdings verwenden natürlich auch andere Units ihn, sodass das letztlich nur über einen Hook geht - du kannst es allerdings auch mal so probieren.
Delphi-Quellcode:
procedure TestIs(Inst: TObject; Cls: TClass);
  function IsEqual(Cls1, Cls2: TClass): Boolean;
  begin
    Result := (Cls1.InstanceSize = Cls2.InstanceSize) and (Cls1.ClassName = Cls2.ClassName);
  end;
var InstCls: TClass;
begin
  InstCls := Inst.ClassType;
  repeat
    if IsEqual(InstCls, Cls) then
      exit;
    InstCls := InstCls.ClassParent;
  until InstCls = nil;
  raise EInvalidCast.Create('Invalid class typecast');
end;
Edit: Wer hat mir denn die Exception EInvalidClass in den Kopf gesetzt?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat