2009-09-22 14 views
7

मैं एक बहु-दस्तावेज़ एप्लिकेशन विकसित कर रहा हूं। वर्तमान में यह एमडीआई का उपयोग करता है जो मेरे लिए (डेवलपर के रूप में) के साथ-साथ उन उपयोगकर्ताओं के लिए भी सुविधाजनक है जो मुझे विश्वास है। हालांकि एक "विरुद्ध" है - मुझे का समाधान नहीं मिला है लोड लोड बाल खिड़कियां (प्रत्येक बार खिड़की बनाई जाती है और माता-पिता के क्षेत्र को भरने के लिए अधिकतम किया जाता है, वहां आकार बदलने का 'एनीमेशन' होता है बहुत समय), इस प्रकार, मैं टैब्ड इंटरफ़ेस पर वापस स्विच करने पर विचार कर रहा हूं (जिसके लिए कुछ और काम की आवश्यकता है, मुझे पेज शीट में एक फॉर्म "एम्बेड" करने की आवश्यकता है, क्योंकि कई प्रकार के फॉर्म उपलब्ध हैं, कुछ पाठ दस्तावेज़, अन्य वस्तुओं के लिए कुछ) संपादित करने के लिए ...डेल्फी, बहु-दस्तावेज़ इंटरफ़ेस के लिए एमडीआई बनाम टैब

तो, आपकी राय क्या है? क्या मुझे एमडीआई या टैब्ड इंटरफ़ेस का उपयोग करना चाहिए?

+1

संबंधित: [क्या अभी भी एमडीआई के लिए एक जगह है?] (Http://stackoverflow.com/questions/486020) और [कौन सा बेहतर है: एमडीआई बच्चे, या मॉडलिस संवाद?] (Http://stackoverflow.com/ प्रश्न/2451728) – voyager

उत्तर

9

एमडीआई (संभवतः पहले या?) विंडोज 3 दिनों में वापस विकसित किया गया था और नहीं इन दिनों अच्छी तरह से समर्थित है। यदि आपको विभिन्न रूपों के साथ कई दस्तावेज़ों की आवश्यकता है, तो मैं एक टैबड इंटरफेस का उपयोग करने की सलाह दूंगा। फॉर्मों के बजाय फ्रेम का उपयोग करें, और नए टैब बनाएं और उस पर एक फ्रेम रखें, alClient aligned।

+0

क्षमा करें, लेकिन मुझे लगता है कि आप गलत हैं। कुछ साल पहले माइक्रोसॉफ्ट द्वारा एमडीआई को हटा दिया गया था। लेकिन माइक्रोसॉफ्ट इसे फिर से उपयोग कर रहा है उदाहरण के लिए ऑफिस 2007 में जहां आप शास्त्रीय एमडीआई सिस्टम देख सकते हैं। –

+6

नहीं, वे नहीं हैं।Office 2007 एक स्वामित्व ढांचे का उपयोग करता है, और अंतर्निहित WinAPI एमडीआई कार्यक्षमता के बिल्कुल ** ** ** का उपयोग करता है। यह ++ एमडीआई होने के लिए ++ दिखाई दे सकता है, लेकिन ऐसा नहीं है। –

+2

बिल्कुल। JvDocking की तरह डॉकिंग का उपयोग करें। यह "पसंद करता है" एमडीआई लेकिन एमडीआई फॉर्म स्टाइल और Win31 युग कोड का उपयोग नहीं कर रहा है, जो, वैसे, छोटी है। –

11

नई एमडीआई बच्चे खिड़कियों के आकार बदलने एनीमेशन (और इस प्रकार देरी) से बचने के लिए अपने बच्चे को खिड़कियां बनाने से पहले TForm के ClientHandle संपत्ति माता-पिता के लिए एक WM_SETREDRAW संदेश भेजते हैं, और उसे फिर से भेजने जब आप समाप्त कर, अर्थात्:

+0

यह तेजी से चला जाता है, लेकिन ... मैं अभी भी एनीमेशन देख सकता हूं! : ओ – migajek

3

प्रश्न: यह महत्वपूर्ण है कि उपयोगकर्ताओं को अपने एम्बेडेड रूपों या एक समय में फ्रेम के एक से अधिक देखने में सक्षम होना है? यदि नहीं, तो निश्चित रूप से टैब के लिए जाओ।

टैब्स यह आसान नेविगेट करने के लिए और क्या उपलब्ध है देखने के लिए बनाते हैं। लेकिन मानक पेज कंट्रोल के साथ आप एक समय में केवल एक टैब देख सकते हैं - कोई "टाइलिंग" या "कैस्केडिंग" नहीं है। समस्याएं उदाहरण के लिए शुरू होती हैं जब उपयोगकर्ताओं को एक टैब से दूसरे टैब को खींचने की आवश्यकता होती है। यह निश्चित रूप से किया जा सकता है, लेकिन यह सुविधाजनक नहीं है - क्योंकि इस बार उपयोगकर्ता नहीं देखते हैं कि वे कहां खींच रहे हैं।

इस सीमा आप एक डॉकिंग यूआई, जो जटिलता कहते हैं को देखने के लिए होगा काबू पाने के लिए, लेकिन आप टैब ने टाइल करने में सक्षम होने के साथ ही दे सकता है।

+0

वास्तव में वैसे भी टैब हैं। वे उपलब्ध खिड़कियों का प्रतिनिधित्व कर रहे हैं। प्रत्येक विंडो में इसका अपना टैब आइटम होता है, लेकिन यह पेज कंट्रोल नहीं है, बस खाली टैब जो - सक्रिय होने पर - संलग्न फॉर्म को सामने लाता है। – migajek

+0

@ मिगाजेक मुझे पता है कि यह पुरानी पोस्ट है, हालांकि यह देखने के लिए मजाकिया है कि मैंने एक परियोजना में बिल्कुल वही काम किया है जिसे मैंने डेल्फी 1 पर शुरू किया है! यह अभी भी XE2 पर काम कर रहा है: टैब + एमडीआई, हालांकि अगली रिलीज मैं उस अवधारणा को फ्रेम पर जा रहा हूं। –

5

निश्चित रूप से एक आप का हवाला देते हैं की तुलना में एमडीआई के लिए और अधिक नकारात्मक अंक हैं। आप विकिपीडिया में और यहां तक ​​कि विंडोज इंटरफेस दिशानिर्देशों में भी इस पर चर्चा कर सकते हैं। एमडीआई को अब वर्षों से हटा दिया गया है। माइक्रोसॉफ्ट स्वयं अपने किसी भी बड़े अनुप्रयोग के लिए अपने "मानक" रूप में एमडीआई का उपयोग नहीं कर रहा है, वे अक्सर अन्य यूआई शैलियों के साथ एक एमडीआई अनुकरण प्रदान करते हैं।

यदि आपका प्रोग्राम एकाधिक स्क्रीन वाले उपयोगकर्ताओं के लिए है तो एमडीआई और टैब-आधारित यूआई दोनों में मूल विंडो के अंदर दस्तावेज़ विंडो को सीमित करने की समस्या है।

एक उचित आवेदन डिजाइन के साथ

तुम सच में एमडीआई और टैब आधारित यूआई के बीच तय करने की जरूरत नहीं है। अपने उपयोगकर्ताओं को यह तय करने दें कि वे किस यूआई के साथ सबसे अधिक आरामदायक हैं, और जो उनकी कामकाजी शैली को सबसे अच्छी तरह फिट बैठता है। कई स्वतंत्र शीर्ष-स्तरीय दस्तावेज़ विंडो (या तो एक एप्लिकेशन उदाहरण में या एकाधिक में) के लिए अनुमति दें। यह आपके दस्तावेज़ों के लिए फ्रेम कक्षाएं बनाने और रनटाइम पर निर्णय लेने के लिए आसान हो सकता है कि उन्हें एक टैब नियंत्रण में एम्बेड करना है, एमडीआई बाल विंडो में, या शीर्ष-स्तरीय विंडो में।

संबंधित मुद्दे