मैं अपने वर्ग का नाम स्ट्रिंग, which has been asked about before के रूप में एक फॉर्म बनाना चाहता हूं, लेकिन GetClass
पर कॉल करने के बजाय, मैं डेल्फी की नई आरटीटीआई सुविधा का उपयोग करना चाहता हूं।मैं अपनी कक्षा को अपने 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
भी कोशिश की है।
एक बार जब आप फॉर्म ऑब्जेक्ट को तुरंत चालू कर देते हैं, तो आपको अपनी 'शो()' विधि को कॉल करने के लिए अब आरटीटीआई का उपयोग करने की आवश्यकता नहीं है। बस इसे सामान्य रूप से कॉल करें: 'एफ। शो;' –
@ रेमीलेबेउ, इस नमूना एफ पर एक टीवील्यू है, बेशक ओपी एक टीएफओएम हेल्पर वैरिएबल पेश कर सकता है या सिर्फ टीवीएयू को टॉर्म पर डाला जा सकता है जैसे कि 'टीएफओएम (एफ.एएसओब्जेक्ट) .how; ' – RRUZ
क्षमा करें, मैंने यह नहीं देखा कि' f' एक 'टीवीएयू' था, जब मैंने देखा तो मैं निओको के कोड को देख रहा था। –