سؤال

في دلفي;ما هي الاختلافات بين التطبيق.MessageBox, Windows.MessageBox أو الحوارات.MessageDlg?أو التي هي أكثر كفاءة في استخدام الكمبيوتر الذاكرة ؟

هل كانت مفيدة؟

المحلول

يقوم نظام ويندوز.MessageBox هو ال WinAPI MessageBox التطبيق.MessageBox هو التفاف حول ذلك.الحوارات.MessageDlg ومع ذلك هو VCL شكل.حتى إذا كنت تشعر بالقلق إزاء الذاكرة أو موضوع السلامة ، الأولين قد يكون أكثر ملاءمة.MessageDlg OTOH أكثر مرونة وأسهل في الاستخدام (IMHO بالطبع).

نصائح أخرى

ويندوز MessageBox المترجمة من قبل نظام التشغيل (نعم, لا, إلغاء...), MessageDlg يمكن أن تكون مترجمة من قبل اليد.

لماذا تهتم صغيرة مقدار الذاكرة المستخدمة من قبل رسالة الصندوق ؟ هناك العديد من الأشياء الأخرى التي ينبغي أن تكون بنفسك مع عند كتابة دلفي التطبيق.في أي حال, بقدر ما أنا على علم هذه كلها رقيقة مغلفة حول النوافذ MessageBox API.

إذا كنت أتذكر بشكل صحيح ، هناك تمييز ضيفتها دلفي VCL رسالة صناديق النوافذ منها - يمكنك تحديد الإشارات التي وقف تطبيق الرسائل من الخدمات (على سبيل المثال MB_SYSTEMMODAL).هذا يمكن أن تكون مفيدة لعرض الأخطاء التي تحتاج إلى تجميد التطبيق الخاص بك - دلفي MessageDlg لا تزال النار الموقت الأحداث حتى حين على الشاشة.انظر:

MSDN MessageBox الاشياء

استخدام الذاكرة لا يجب أن تكون مثل هذه المشكلة مع مربعات الرسائل.أنا شخصيا أفضل VCL شكل (الحوارات.MessageBox) منذ استطيع تعريب من Consts.با الوحدة.أنا أيضا مثل ذلك من حقيقة أن أنا يمكن إضافة عناصر التحكم المخصصة لذلك ، مثل خانات "عدم إظهار هذا مرة أخرى" وغيرها من الاشياء من هذا القبيل.

يفعلون كل نفس - الاحتجاج WinAPI الدالة MessageBox().الفرق في استهلاك الموارد إذا كان أي هو الحد الأدنى.إذا كنت تهتم كثيرا يمكنك الاتصال MessageBox() مباشرة - تشمل فقط "يستخدم ويندوز".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top