Chcę utworzyć formularz podając jego nazwę klasy jako ciąg, which has been asked about before, ale zamiast wywoływania GetClass
, chcę użyć nowej funkcji RTTI Delphi.Jak utworzyć instancję klasy z jej TRttiType?
Z tym kodem, mam TRttiType
, ale nie wiem jak go utworzyć.
var
f:TFormBase;
ctx:TRttiContext;
lType:TRttiType;
begin
ctx := TRttiContext.Create;
for lType in ctx.GetTypes do
begin
if lType.Name = 'TFormFormulirPendaftaran' then
begin
//how to instantiate lType here?
Break;
end;
end;
end;
Próbowałem również lType.NewInstance
bez powodzenia.
Po utworzeniu obiektu Form, nie trzeba już używać RTTI, aby wywołać metodę 'Show()'. Po prostu wywołaj to normalnie: 'f.Show;' –
@RemyLebeau, na tym przykładzie f jest parametrem telewizyjnym, poza tym OP może wprowadzić zmienną helpera TForm lub po prostu rzucić TValue na format Tform, tak jak to 'TForm (f.AsObject) .Show; ' – RRUZ
Przepraszam, nie zauważyłem, że' f' było 'TValue', patrzyłem na kod Niyoko kiedy to zobaczyłem. –