जिस तरह से एमडीआई काम करता है वह उस चीज से जेल नहीं करता है जिसे आप करने की कोशिश कर रहे हैं।
यदि आपको "एमडीआई" प्रारूप की आवश्यकता है, तो आपको अंतर्निहित या का उपयोग करने पर विचार करना चाहिए वाणिज्यिक डॉकिंग पैकेज, और एमडीआई महसूस की नकल करने के लिए डॉकिंग सेटअप का उपयोग करें।
मेरे डेल्फी ऐप्स में, मैं अक्सर टीएफआरम्स का उपयोग करता हूं और उन्हें मुख्य रूप में अभिभावक करता हूं, और उन्हें अधिकतम करता हूं ताकि वे ग्राहक क्षेत्र ले सकें। यह आपको कुछ दिखता है जैसे Outlook कैसे दिखता है। यह कुछ ऐसा ही जाता है:
TMyForm = class(TForm)
private
FCurrentModule : TFrame;
public
property CurrentModule : TFrame read FModule write SetCurrentModule;
end;
procedure TMyForm.SetCurrentModule(ACurrentModule : TFrame);
begin
if assigned(FCurrentModule) then
FreeAndNil(FCurrentModule); //You could cache this if you wanted
FCurrentModule := ACurrentModule;
if assigned(FCurrentModule) then
begin
FCurrentModule.Parent := Self;
FCurrentModule.Align := alClient;
end;
end;
इसका उपयोग करने के लिए, आप बस यह कर सकते हैं:
MyForm.CurrentModule := TSomeFrame.Create(nil);
एक अच्छी बहस है कि आपको इंटरफेस का उपयोग करना चाहिए (एक आईपॉड इंटरफ़ेस या कुछ बनाना) जिसका आप उपयोग करते हैं। मैं अक्सर ऐसा करता हूं, लेकिन यह अवधारणा को समझाने के लिए आवश्यक से अधिक जटिल है।
HTH