我想創建一個表單,其類名爲字符串which has been asked about before,但我不想調用GetClass
,我想使用Delphi的新RTTI功能。使用此代碼,我有TRttiType
,但我不知道如何實例化它。如何從TRttiType實例化類?
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;
我也試過lType.NewInstance
沒有運氣。
一旦你實例化了Form對象,你就不需要再使用RTTI來調用它的Show()方法。正常地調用它:'f.Show;' –
@RemyLebeau,在這個示例f上是一個TValue,當然OP可以引入一個TForm輔助變量或只是將TValue強制轉換爲Tform,就像'TForm(f.AsObject) .Show;' – RRUZ
對不起,我沒有注意到'f'是一個'TValue',我看到Niyoko的代碼。 –