delphidelphi-10.3-riotform

Operator IS with a TFormClass


I've a follow situation:

TMyFormClass = class of TMyForm

function IsMyClass(AClass: TFormClass);
begin
  Result := AClass is TMyForm      // Operator not applicable to this operand type
  Result := AClass is TMyFormClass // Operator not applicable to this operand type
end;

The both lines does not build, the error is Operator not applicable to this operand type.

How can I do this comparation?


Solution

  • The lhs of the is operator should be an instance, but you have provided a class.

    What you need is the InheritsFrom class method:

    AClass.InheritsFrom(TMyForm);