Witam.
Zrobiłem sobie bazową klasę TBaseListForm z której dziedziczą wszystkie inne formy. Żeby nie dodawać za każdym razem modułów do uses to posłużyłem się metaklasami. Zrobiłem sobie procedurę która otwiera mi takie formy, przykładowo:

procedure OtworzListForm(iOwner: TComponent; iClassName: String; iParametr1, iParametr2: Integer);
 var
  aForm: TFormClass;
begin
  aForm := TFormClass(FindClass(iClassName));

  with aForm.Create(iOwner)
  do
    Show;
end;

Jednak chciałbym wywoływać swój własny konstruktor przodka czyli z TBaseListForm:

OtworzListForm(Owner: TComponent; iClassName: String; iParametr1, iParametr2: Integer);
 var
  aForm: TFormClass;
begin
  aForm := TFormClass(FindClass(iClassName));

  with TBaseListForm(aForm).MojKonstruktor(iOwner, iParametr1, iParametr2)
  do
    Show;
end;

...ale dostaje access violation w konstruktorze, w pierwszej lini:

constructor TBaseListForm.MojKonstruktor(iOwner: TComponent; iParametr1, iParametr2: Integer);
begin
  inherited Create(iOwner);
  
  Procedura1(iParametr1);
  Procedura2(iParametr2);
end;

Pewnie to rzutowanie na obiekt TBaseListForm jest nie na miejscu, ale nic innego nie przyszło mi do głowy. Ktoś ma jakiś pomysł?