No, if all your types are classes descending from the same root you
can do it is like this:

type
  TBaseType = class;
    procedure somemethod();
  end;

  TExtendedType = class(TBaseType);

  TBaseTypeClass = class of TBaseType;

procedure (value: TBaseType; type_: TBaseTypeClass)
begin
  value := type_.Create();
  value.somemethod();
end;

And you can call your procedure as:

proc(somevar, TExtendedType);

For other types you need to use generics.

-- 
Felipe Monteiro de Carvalho
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to