मैं डेल्फी XE में काम कर रहा हूँ में उपलब्ध कराया जा सकता है,। ऐसा करने के लिए, मेरे पास 1 बेस रिपोर्ट क्लास और एक सबक्लास प्रति रिपोर्ट प्रकार (xml, csv, ppt, आदि) है।"अप्रयुक्त" वर्गों विंडोज़ 7</p> <p>एक आवेदन मैं अपने उपयोगकर्ताओं को चुनने के लिए के लिए विभिन्न प्रकार की रिपोर्ट के सक्षम करना चाहते हैं में डेल्फी XE
{Just an illustrating example}
TBaseReport = class
public
constructor Create;
procedure GenerateReport; virtual; abstract;
class function ReportType: string; virtual; abstract;
end;
T*Report = class(TBaseReport);
//Etcetera.
मुझे क्या करना चाहते हैं उपयोग RTTI सभी रिपोर्ट वर्गों का पता लगाने और उनके ReportType सूची है। उसके बाद, मैं चयनित रिपोर्ट क्लास का उदाहरण बनाने और जेनरेट रिपोर्ट को कॉल करने के लिए आरटीआई का उपयोग करना चाहता हूं। सब कुछ, यह हासिल करना बहुत मुश्किल नहीं है।
हालांकि एक बड़ी कमी है: मैं अवरोही कक्षाओं के उपयोग को कभी भी कड़ी मेहनत नहीं कर रहा हूं, इसलिए कोड निष्पादन योग्य में शामिल नहीं होता है।
क्या इन वर्गों को शामिल करने के लिए लिंकर/कंपाइलर को मजबूर करने का कोई अच्छा तरीका है?
ए (एन बदसूरत) काम उनके प्रारंभिक अनुभाग में रिपोर्ट के उपयोग को अनुकरण करना होगा, लेकिन मैं ऐसा नहीं करना चाहूंगा। बेस क्लास को लगातार बनाने और 'रजिस्टर क्लास (टी * रिपोर्ट)' कॉल करने के लिए एक बेहतर समाधान है; प्रारंभिक खंड में। यह काम करता है, लेकिन मुझे उन्हें लगातार बनाने की कोई अन्य ज़रूरत नहीं है, इसलिए फिर, मैं ऐसा नहीं करूँगा। दूसरी ओर, शायद यह करने का यही एकमात्र तरीका है?
अग्रिम धन्यवाद।
यह करने का यह तरीका है। आपके अंतिम बिंदु के बारे में, अधिक कोड –
के रूप में बहुत अधिक आरटीटीआई नहीं, मुझे लगता है कि STRONGLINKTYPES का दायरा वैश्विक है। क्या आप जानते हैं कि स्थानीय समकक्ष भी उपलब्ध है या नहीं? – deColaman
फ़ाइल आकार में वृद्धि की जांच करने के लिए बस मेरे आवेदन के लिए इसे चालू कर दिया। Exe 8.3MB से 9.9 एमबी तक बढ़ी। यद्यपि यह बहुत कुछ लगता है, लाभ मुझे लगता है कि अतिरिक्त आकार से अधिक है। – deColaman