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ł?