الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

رسالة الخطأ

مغلق
بدأه el3asher في 8 مارس 2005 · 8 رد · 745 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

التركيب النحوي للاداة MsgBox

BottonClicked=MsgBox(messageِ NumberOfBottonِ tittle)

حيث الوسيطةBottonClicked

هي الحدث الذي سيظهر عنده الرسالة

والوسيطة message

هي نص الرسالة التي ستظهر للمستخدم

والوسيطة NumberOfBotton

هو نوع نمط الازرار الذي سيظهر في الرسالة

والوسيطةtittle

هو النص الذي سيظهر في شريط عنوان الرسالة

بالنسبة للوسيطة NumberOfBotton

فهي تعني نمط الازرار الذي سيظهر في رسالة الخطأ

من الممكن ان تكون الرسالة بها الزر ok فقط

او الزرين ok and cancel

او الزرين yes and no

ان نمط الازرار هذا تتحكم فيه الوسيطة NumberOfBotton

لكل نمط ازرار كود خاص به في الفيجوال بيسك

الزر ok

كوده VBOkOnly

رقمه 0

الازرار ok and cancel

الكود VBOkCancel

الرقم1

الازرار abort and retry and cancel

الكود VBAbortRetryCancel

الرقم2

الازرارyes and no and cancel

الكود VBYesNoCancel

الرقم3

الازرارyes and no

الكودVBYesNo

الرقم4

الازرارretry and cancel

الكود VBRetryCancel

الرقم5

هذه أنماط الازرار الممكن اضافتها لرسالة الخطأ

تلاحظ اني كتبت لكل نمط كود ورقم

ان الرقم يحل محل الكود في الشيفرة

فبدلا من كتابة الكودVBRetryCancel من الممكن ان تكتب الرقم 5 فقط

وسيظهر نمط الازرار retry and cancel

كما يمكنك ان تضيف ايقونة لرسالة الخطأ

الايقونات هي

علامة Xحمراء

كودها VBCritical

رقمها 16

علامة استفهام ؟

كودهاVBQuestion

رقمها32

علامة تعجب!

كودها VBExclamation

رقمها48

علامة حرف i

كودهاVBInformation

رقمها64

نفس الامر من الممكن ان يحل رقم الايقونة محل كودها في الشيفرة

ولكن ماذا لو انك تريد ان تظهر رسالة بها نمط الازرار retry and cancel مع أيقونة علامة استفهام؟؟

لاحظ الكود التالي

ٌReply=MsgBox("هنا تظهر الرسالة"ِ VBRetryCancel+VBQuestion ِ " عنوان الرسالة هنا")

لقد كتبت الكود الخاص بنمط الازرار والكود الخاص بنمط الايقونة وبينهما العلامة +

ربما انت تريد ان تستخدم الارقام بدلا من الاكواد

ٌReply=MsgBox("هنا تظهر الرسالة"ِ 37 ِ " عنوان الرسالة هنا")

رقم النمط 32

ورقم الايقونة5

إذًا 5+32=37

بسيطة جدا هذه الطريقة

حسنًا الان ربما تسألني عن المعلومات العائدة من رسالة الخطأ

كيف؟

لو ظهرت لي الان رسالة بها الزرين OK and CANCEL

فلو ضغطت اوك سيكون للبرنامج رد فعل مخالف لرد الفعل الذي سيحدث لو ضغطت الزر كانسل

كيف اضبط ردود الافعال تلك حين أكتب برنامجي؟!!!

قلنا ان لكل نمط كود ورقم

ايضا لكل زر كود ورقم

الزر Ok

الكودVBOk

الرقم1

الزرCancel

الكودVBCancel

الرقم2

الزرAbort

الكودVBAbort

الرقم3

الزرRetry

الكودVBRetry

الرقم4

الزرIgnore

الكودVBIgnore

الرقم5

الزرYes

الكودVBYes

الرقم6

الزرNo

الكودVBNo

الرقم7

هذه الاكواد بأرقامها

لنقل أني أريد أن تظهر رسالة خطأ عند الضغط علي الزر Qute

عنوان الرسالة (تأكيد)

نص الرسالة ( تأكيد خروج البرنامج)

نمط الازرار yes and no

نمط الايقونة علامة استفهام

وعند الضغط علي yes ينتهي عمل البرنامج وإلا يظل مشتغلاً

private sub cmdqute_click()
Botton=MsgBox("تأكيد " ِ 36 ِ "تأكيد خروج البرنامج")
If Botton=VByes Then END
End if
End sub

يمكنك ايضا استبدال الكلمة VByes بالرقم الخاص بزر yes وهو 6

هذا كل ما علمته عن رسالة الخطأ

أتمني أن أكون قدمت جديدًا لمعلوماتكم

وإن كان بما قلت نقصًا أو خطأ فليتفضل أحد العالمون بالتصحيح أو الزيادة

:)

تم تعديل هذه المشاركة بواسطة el3asher في 8 مارس 2005 في 14:58

مزعج ...

حتي إشعار آخر.

#2

أنا قلت أعمل اضافة صغيرة لو تسمح لي انك ممكن تعمل handling لأي error عن طريق الاتي

on error goto errorhandle
'your code here
'
'
'
'if you found an error 
errorhandle:
msgbox(err.description, vbok + vbcritical, "error")
exit sub

تم تعديل هذه المشاركة بواسطة romantic_boy في 9 مارس 2005 في 01:02

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#3

مجهود رائع

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#4

اشكرك أخي رومانتيك بوي علي إضافتك :D

أريد أن أضيف أيضا أنه حين تستغني عن الوسيطةBottonClicked فإن الاقواس تحيط بالوسيطة الاولي للرسالة فقط

MsgBox("your message here") , VBOkOnly , " the tittle here"

نلاحظ ان الاقواس تحيط فقط بالوسيطة الاولي

("your message here")

تم تعديل هذه المشاركة بواسطة el3asher في 9 مارس 2005 في 11:46

مزعج ...

حتي إشعار آخر.

#5

يا سيدي و لا تزعل و اليك الاّتي:

-------------------------------

using predefined dialog boxes in visual basic

--------------------------------------------------------------

creating a message dialog box

------------------------------------------

تركيب مربع حوار الرسالة يكون كالاتي:

msgbox prompt, dlgdef, title

الان نقوم بتشريح مربع حوار الرسالة:

prompt : هو النص الذي يظهر أمامك علي الرسالة و هو الذي يشرح لك ما الذي تريد الرسالة اخبارك به أو ما الذي تريدك أن تفعله.

dialog defintion: يعرف أنواع الأيقونات التي ستظهر أمامك و كذلك نوعية الأزرار حيث يوجد أزرار تعرض ok فقط و في هذه الحالة التفاعل يكون بالموافقة علي نص الرسالة فقط و لكن هناك رسائل تسمح لك باتخاذ قرارات ( أي اختيارات) مثل yes no و ok cancel و ..... الخ و سوف نتناول ذلك بالتفصيل.

انظر الي هذا الشكل و تعال معي نكمل ما بدئناه:

1_932005340550.4601862.JPG

يمكن أن نتعامل مع ال msgbox أثناء تكوينها باحدي طريقتين اما بالثوابت أو بالأرقام كما يلي:

Dim message As String
Dim dlgdef As String
dlgdef = vbOKCancel + vbInformation
message = MsgBox("this is my first messaghe", dlgdef, "hello first msgbox")

message = MsgBox("you can do it by mumbers", 1 + 16, "hi")

طبعا يمكنك التعامل مع الرسائل بكل سهولة لاتخاذ أي قرار بناء علي المستخدم كالتالي

Private Sub Command1_Click()
Dim ahmed As String
ahmed = MsgBox("are you sure you want to quit?", vbMsgBoxRtlReading + vbMsgBoxRight + vbInformation + vbSystemModal + vbOKCancel, "general msgbox")
If ahmed = vbOK Then
MsgBox ("you choosed ok (*_*)")
ElseIf ahmed = vbCancel Then
MsgBox ("you choosed to cancel")
End If
End Sub

أعلم أنكم تريدون شرح الأخيرة :D حسنا اليكم الشرح

أولا انا اثرت ان اجمع لك الكثير من الخصائص في رسالة واحدة و نجد الاتي:

أولا : الكلام الذذي بين علامتي التنصيص اتفقنا علي أنه يعرض الكلام الذي يظهر بجسم الرسالة

ثانيا: vbmsgboxrtlreading +vbmsgbpxright هي لتعريب الرسالة و جعل اتجاهها من اليمين لليسار و لو أننا تعودنا علي

الانجليزية :)

ثالثا:vbinformation هي لعرض أيقونة علامة التعجب

رابعا: vbsystemodal لا تمكنك من التعامل مع البرنامج أو حتي ال system الا بعد أن تتخذ قرار بشأن الرسالة المعروضة

خامسا: vbokcancel لعرض أزرار ok و cancel.

يمكنك أيضا أن تستخدم msgbox كدالة ترجع لك قيم كالاتي:

Private Sub Command1_Click()
Dim ahmed As Integer
ahmed = MsgBox("hi this is a test we are waiting for your value", vbQuestion + vbOKCancel, "test")
Print ahmed
End Sub

الأدهي من ذلك أنك من الممكن أن تظهر رسالة (علي مزاجك) اذا أدخلت لها الأرقام الصحيحة كالاتي:

Private Sub Command1_Click()
Dim ahmed As String
Dim title As String
Dim body As String
Dim dlgdef As Integer
title = "make your own msgbox"
body = "yes you can really make your own msgbox"
dlgdef = InputBox("enter the number to make a message box")
MsgBox body, dlgdef, title
End Sub

و هي طبعا الأرقام 0 & 1 & 2 & 3 & 4 & 5 & 16 & 32 & 48 & 64

ليس هذا كل شيء الموضوع أكبر من ذلك و للحديث بقية ان شاء الله و بالتوفيق

أحمد شلبي

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#6

الحمدالله المبدعين في طريقة الشرح والاسلوب الرائع في هذا المنتدى ..في تزايد

فعلا اسلوب رائع اخ romantic_boy واتمنى الكثير من المواضيع

بنفس الاسلوب

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#7

حسنًا حسنًا حسنًا

انت جعلت المستخدم هو الذي يحدد نمط الازرار او الايقونة

وأضفت أشياء لم أكن لأفكر فيها أصلاً

هذا رائع يبدوا أني تعلمت كيف أحثك علي الاستمرار :D

أشكرك بشدة أخي رومانتيك علي المجهود الرائع

تم تعديل هذه المشاركة بواسطة el3asher في 9 مارس 2005 في 14:57

مزعج ...

حتي إشعار آخر.

#8

أشكركم كثيرا ولله دائما اخذ أكثر من حقي في هذا المنتدي الجميل، أشكرك أخي العاشر علي رسالتك الجميلة، طبعا انت صاحب الموضوع و ما وضعته كان مجرد اضافة، و شكرا جزيلا أستاذنا hnhn و ان شاء الله نكمل الموضوع بس انا وقفت عشان عنيا وجعتني :D ، ان لعيني علي حق ولا ايه؟ :)

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#9

مجهود أكثر من رائع يا العاشر.....

طريقة شرح جميلة و بسيطة و مفهومة ....طريقة شرحك للموضوع اكثر من رائع

نشكرك على مجهودك العاشر :D :D

و اضافة جميلة روماننيك بوي :) :)

روز

تم تعديل هذه المشاركة بواسطة روزيتا في 9 مارس 2005 في 16:23

هذا الموضوع مغلق.

مواضيع مشابهة