المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : التعامل مع الرسائل في دلفي MessageBox & Delphi


delphi4ever
24-02-2008, 11:14 PM
السلام عليكم ورحمة الله تعالى وبركاته

التعامل مع الرسائل في دلفي Working with messages in delphi

1- الرسائل Messages: هي تلك النوافذ الصغيرة التي تظهر لنا معلومات مفيدة واستعلامات وإشارات تحذير وخطأ وتعلم مستعمل البرنامج بعدة أمور، مثل رسالة " هل تريد فعلا إنهاء البرنامج" وهناك عدة أنواع من الرسائل التي يمكن برمجتها لتظهر للمستعمل وتسمى بـ : MessageBox.

2- أنواعها: هناك عدة أنواع من الرسائل وهي كالتالي:
2-1 رسالة الخطأ Message Error وتحتوي على الإيقونة الحمراء التي تشير بوجود خطأ ويكون محتوى الرسالة حول الخطأ

2-2 رسالة تحذير Message Warning وتحتوي على إشارة التذير الصفراء التي تقوم على تحذير مستعمل البرنامج من القيام بعمل ما ويكون محتوى الرسالة دائما حول الخطر.

2-3 رسالة معلومات Message information وتحتوي على الحرف I الذي يعني بدوره information وتقوم هذه الرسالة بإعطاء معلومات مفيدة للمستعمل ويكون محتواها دائما للإعلام.
2-4 رسالة تأكيد Message Confirmation وتحتوي على علامة الإستفهام وتكون في أغلب الأحيان مستعملة من أجل التأكيد في عدة أماكن مثل : 'هل تريد إغلاق هذا البرنامج؟' ...الخ من الأماكن الأخرى

2-5 رسالة عادية Custom Message وهي رسالة عادية لا تحتوي على أي إيقونة icons ويكون عنوانها هو عنوان المشروع أي أنها لا تحمل في العنوان Error أو Warning أو أي شيئ اخر سوى عنوان المشروع.

يحتوي كل نوع من الرسائل السابق ذكرها (Error, Warning, Infomation, Confirmation, Custom) على المعلومات التالية:

1-محتوى الرسالة.
2-نوع الرسالة.
3-الأزرار Buttons الموجودة بالرسالة
4-عنوان الرسالة.


3 – أمثلة عن الرسائل في دلفي:

3-1 إنشاء رسالة عن طريق الإجراء ShowMessage
مثال:
1- نضع مكون Button ثم نقوم بالضغط مرتين عليه ونكتب ما يلي:

ShowMessage('Hello 2 ALL');

ShowMessage وهي إجراء تابع للوحدة Dialog التابعة لدلفي وهذا لأنه يقوم بإظهار Dialog للمستعمل بحيث يحوي هذا Dialog على محتوى الرسالة وهو 'Hello 2 ALL' يمكننا تغيير المحتوى وهذا حسب مكان إظهار الرسالة ويجب أن يكون محتوى الرسالة بين القوسينكما هو ظاهر لأن المحتوى عبارة نص بحيث تكون هيكلة الإجراء ShowMessage كالتالي: ShowMessage(' ');.

2- في حالة ما إذا كان محتوى الرسالة يحتوي على كلمة مثل Today's أو John's أي موجود بها الرمز ' في هذه الحالة يجب على المبرمج أن يضع هذه الإشارة مرتين'' في نفس الكلمة وهذا لتفادي الخطأ بحيث سيكون محتوى الرسالة على الشكل التالي:
ShowMessage('John''s Book');

3- وفي الأخير سنحصل على MessageBox يحتوي في عنوانه على إسم المشروع وفي محتواه على ما حددناه له وعلى Ok Button أيضا بحيث يكون موقع MessegeBox في وسط الشاشة ScreenCenter

3-2 إنشاء رسالة عن طريق ShowMessagePos :
يقوم هذا الإجراء الذي هو واضح من عنوانه على إظهار رسالة تحتوي على نفس محتويات ShowMessage لكن تختلف عليها في تحديد إحداثيات ظهور نافذة الرسالة MessageBox، بحيث يمكننا أن نحدد إحداثيات MessageBox عن طريق الإجراء ShowMessagePos وهو كالتالي:
ShowMessagePos('Hello 2 ALL', 100,200);

بحيث أن 100 و 200 هما إحداثيات ظهور نافذة الرسالة MessageBox

5-إنشاء رسائل عن طريق الدالة MessageDlg (Fonction)

MessageDlg : هي دالة Fonction خاصة بالرسائل دائما لكنها متطورة نوعا ما وهي تابعة أيضا لـ
Dialog Unit الخاصة بدلفي ، بحيث تقوم هذه الأخيرة بإظهار رسائل منوعة كرسائل الخطأ Error والإعلام information وتأكيد Confirmation مع ظهور إيقوناتها Icons والعديد من الخصائص الأخرى.

function MessageDlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;

5- 1 : إنشاء رسالة عن طريق الدالة MessageDlg

http://img231.imageshack.us/img231/9664/exge7.jpg (http://imageshack.us)

1 - نضع مكون Button ثم نقوم بالضغط مرتين عليه ونكتب ما يلي:

MessageDlg(' Would you really Exit this program? ', mtconfirmation,[mbyes,mbno],0);
شرح الدالة MessageDlg:

•Messagedlg : هو معرف الدالة وهو ضروري ويجب كتابته دائما.
•Would you really Exit this program? : محتوى الرسالة.
•mtConfirmation: ويعني نوع الرسالة Dialog Type ، فمثل هذه الرسالة تسمى برسالة التأكيد Confirmation و mt تعني MessageType هناك أنواع كثيرة من أنواع الرسالات وقد تطرقنا إليها في أول الموضوع كـ: (Error, Warning, Infomation, Confirmation, Custom)
• [mbyes,mbno]: وهي أزرار الرسالة Dialog Buttons التي تظهر لنا في مربع الرسالة مثل Ok و Cancel و yes و No ...الخ بحيث أنه توجد مجموعة لا بأس بها من Dialog Buttons و Mb تعني لنا Message Button وهناك عدة أنواع وهي: MbAbort, MbHelp, MbCancel, MbIgnore, MbNO, MbNoToAll, MbOk, MbYes, MbYestoAll, MbRetry, MbAll) يمكن إستعمال أي نوع من الأزرار السالف ذكرها مع بعض وهذا عن طريق ترك فاصلة بين الواحدة والأخرى ، مثال [mbyes,mbno,mbretry] وهذا حسب رغبة المبرمج.
•0: يمثل لنا Help ID أو كما يسمى بـ Help Context

6-2 إنشاء رسالة عن طريق الدالة MessageDlgPos :

http://img223.imageshack.us/img223/5571/inputbv4.jpg (http://imageshack.us)

تعمل هذه الدالة Fonction نفس عمل الدالة الأولى MessageDlg لكن تقوم هذه الأخيرة بتحديد إحداثيات لنافذة الرسالة DialogBox وهذا بإعطاء قيمتين بعد الصفر في الدالة على الشكل التالي:
function MessageDlgPos ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint; X, Y : Integer ) : Integer;

مثال :
inputBox('Search: ', 'Find This Word',' ');

•inputBox: هي الدالة نفسها.
•Search : يوضع مكانها عنوان النافذة Title of Dialog
•Find This Word: يوضع مكانها التعليق الذي سيوضع مباشرة فوق مربع البحث
•' ' : يمثل هذا الفراغ محتوى المربع أي بإمكاننا كتابة أي شيئ فيه أو تركه كما هو.

وللمزيد من التفاصيل قم بتحميل الملف المصدري Source-Code الموجود بالمرفقات.
والله ولي التوفيق

xinofix
25-02-2008, 09:37 AM
هناك تعليمة أخرى
MessageBox


Application.MessageBox('Quitter maintenant', 'Information', MB_ICONINFORMATION)

;)

musvc
24-01-2009, 12:21 PM
مادام انت شرحت عن الـ MessageBox كان تكمل معروفك و تشرح عن الـ MesssageDLg

على العموم نسيت نقطة مهمة و هي :
انسخدام If في الـ MessageBox

مثال :

if MessageBox(0,'Press yes or no ..','Title',MB_YESNO + MB_ICONINFORMATION)=Id_YES then
Begin
ShowMessage('You pressed yes');
end else
Begin
ShowMessage('You pressed no');
end;

حسين سالم
02-02-2009, 03:08 PM
اول مشاركة أتمى تنال اعجابكم
برنامج يقوم بعرض الرسائل باللغة العربية بشرط أن يكون نظام windows المستخدم يدعم اللغة العربية

545

musvc
11-02-2009, 05:26 PM
اول مشاركة أتمى تنال اعجابكم
برنامج يقوم بعرض الرسائل باللغة العربية بشرط أن يكون نظام windows المستخدم يدعم اللغة العربية

545

طبعا سوف تعجبنا , شكرا لك و هلا بك مهنا

Ahmed18
27-02-2009, 12:51 AM
شكرا لك اخي معلومات مفيدة جدا
-

هناك تعليمة أخرى
application.messagebox

هذة بأستخدام ال api

معمر محسن
16-05-2009, 09:23 AM
الاخ حسين سالم شكرا على البرنامج ولكن هل يمكن تغيير كابشن الازرار الى نعم لا بدلا من yes no

مايكل قمر
03-06-2009, 03:14 PM
شكرا الكون كتير شباب وشي مميز كتير يكون في مناقشة بين الاعضاء بعد عرض الموضوع

rm31
06-07-2009, 03:46 PM
السلام عليكم ورحمة الله وبركاته
من هنا برنامج رائع للكتابة السريعة
جيد أتمنى منكم تجريبه
من هنا (http://www.shagrouni.com/download/msgbox.zip)

قديم الشوق
15-07-2009, 09:21 PM
وعليكم السلام ورحمة الله وبركاته

الله يعطيك العافيه ومشكور على الدرس الجميل
كيف اضيف خانة للعنوان بالكود
هذا كود الرسالة ابغى اعنونها
showmessage('how');

kachwahed
15-07-2009, 11:35 PM
كيف اضيف خانة للعنوان بالكود


MessageBox(Handle, 'محتوى الرسالة','عنوان الرسالة',MB_OK + MB_ICONINFORMATION)