I'm trying to do something like this:
function CreateIfForm ( const nClass : TClass ) : TForm;
begin
if not ( nClass is TFormClass ) then
raise Exception.Create( 'Not a form class' );
Result := ( nClass as TFormClass ).Create( Application );
end;
This produces error "Operator not applicable to this operand type". I'm using Delphi 7.
First you should check if you can change the function to accept only a form class:
function CreateIfForm(const nClass: TFormClass): TForm;
and bypass the need for type checking and casting.
If this isn't posssible, you can use InheritsFrom
:
function CreateIfForm(const nClass: TClass): TForm;
begin
if not nClass.InheritsFrom(TForm) then
raise Exception.Create('Not a form class');
Result := TFormClass(nClass).Create(Application);
end;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With