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

ما الفروق بين msgbox و messagebox.show

مغلق
بدأه توك في 10 ديسمبر 2004 · 6 رد · 2,307 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بليز، هذه الاسئله مهمة جداً، ومتأسفة لانني عنوان مشاركتي الأول مش مناسبه:

1) ما هي الوسيلة التي أعرف بأن المتغير هو مصفوفة.

2) ما الفرق بين:

Do While

Loop

و

Do

Loop While

3) هل الأفضل عدم إستخدام MsgBox مع فيجوال بيسك نيت، وهل يجب أن نستخدم دائماً Messagebox.Show، وما هو السبب؟

هذه الأسئلة مهمه جداً وأريد منكم الحل بشكل سريع، بليز.

#2

لمعرفة إن كان متغير مصفوفة فاستخدم الدالة Function المسماة IsArray، مثلاً لو كان عندنا المتغير hms فإننا نستطيع إن نعرف إن كان مصفوفة بالصورة التالية:

Dim WhateEver as Boolean

WhateEver = IsArray(hms)

في هذه الحالة سيكو المتغير WhateEver له القيمة True إن كان المتغير hms هو مصفوفة.

الفرق بين Do While ...Loop وبين Do... Loop While هو أن اللووب الأول ينفذ على الأقل مرة (حتى ولو كانت ال Statment خاطئة).

لا يوجد فرق بين الدالة msgbox والكلاس Messagebox.Show... وللأسف يوجد الكثير من مواقع الإنترت التي تقول بأن الدالة msgbox هي موجودة فقط حتى نستطيع أن نحول البرامج المعمولة بالفيجوال بيسك 6 وما دون الى فيجوال بيسك نيت... وهذا ليس صحيحاً وهو خطأ شائع، فالدالة msgbox هي من ضمن الكلاس VisualBasic.... لذا تستطيع إستخدامهما بشكل مترادف الى ما شاء الله.

Learn Japanese :>>> http://www.nouben.com/

#3
اقتباس
لا يوجد فرق بين الدالة msgbox والكلاس Messagebox.Show... وللأسف يوجد الكثير من مواقع الإنترت التي تقول بأن الدالة msgbox هي موجودة فقط حتى نستطيع أن نحول البرامج المعمولة بالفيجوال بيسك 6 وما دون الى فيجوال بيسك نيت... وهذا ليس صحيحاً وهو خطأ شائع، فالدالة msgbox هي من ضمن الكلاس VisualBasic.... لذا تستطيع إستخدامهما بشكل مترادف الى ما شاء الله.

كما ذكرت فان هذه الnamespace موجودة فقط لمساعدة المبرمجين القادمين من الاصدار السادس الى الدوت نت و لذلك تجد ان جميع هذه الوظائف موجودة في namespaces اخرى مثل الmsgbox

رأيي انك تعتمد اكثر على طرق الدوت نت و تحاول الابتعاد عن استخدام visualbasic name space.. ليه؟؟

لأن الكثير من هذه الوظائف ابطأ في تنفيذها ب1000 مرة من زميلاتها من عالم الدوت نت ..

و سأقتبس هنا من كتاب رائع وضع رابطه محمد عبد العليم:

/index.php?showtopic=50612

اقتباس
Remove the Visual Basic reference from your project. Making use of the original Visual Basic functions has been proven to be up to 1000 times slower than the .NET counterparts; you have been warned.

تم تعديل هذه المشاركة بواسطة undo في 12 ديسمبر 2004 في 03:04

اقتباس
الـ VB هى الأساس ... بتبرمج بيها بالاحساس

ولا سيمي كولن ولا أقواس ... وتعلمها سهل لكل الناس

راكب فيها موتور نفاث ... دي سريعه جدا وباخلاص

الـ VB هى التراث ... للذكور والايناث :D

الـ VB لغة عريقه ... حتى اسأل Anwarica

من ديوان الشاعر السي شاربي "معتز شمس"
#4

أنا لم أقرأ الكتاب المذكور وأعتقد بأنه يعارض مع ما تقوله وثائق ال MSDN وخاصة في القول بالبطء بألف مرة!!!!!!!! ال MSDN هي المرجعية لذا أنا أنقل فقرة كاملة من ال MSDN:

MsgBox versus MessageBox.Show
In Visual Basic .NET, the MsgBox method is a Visual Basic Runtime wrapper around a call to the MessageBox.Show method from the System.Windows.Forms namespace. MsgBox does some extra work to emulate the behavior of the Visual Basic 6 MsgBox function before culminating in a call to MessageBox.Show. The minute cost of these emulating steps is insignificant, particularly when compared to the time it takes a user to react to a dialog box.

Note   MsgBox returns the same integer values returned by MessageBox.Show. Strictly speaking MessageBox.Show returns a DialogResult value and MsgBox returns a MsgBoxResult value. The values in these enumerations have the same meanings: OK = 1, Yes = 6, No = 7, and so on. You can also use CType to convert a MsgBoxResult to a DialogResult.
The choice between MsgBox and MessageBox is a matter of consistency. If you are migrating a Visual Basic 6 application to Visual Basic .NET, there is no compelling reason to replace calls to MsgBox with MessageBox.Show. 

]Recommendation: Use MsgBox throughout your code

لاحظ بالتحديد استعمال كلمة Recommendation وكذلك كلمة insignificant

Learn Japanese :>>> http://www.nouben.com/

#5

مشكوووووووووووووووور

فعلاً في حالة الmsgbox و الmessagebox.show الفارق غير مهم و لكني اعتقد انه يجب ان تتدرب على استخدام كلاسات الدوت نت و تحاول الاستغناء عن visualbasic namespace تدريجياً .. بسبب البطء الذي يعيب الكثير من اعضاء الvisualbasic namespace و ليس كلها..

اقتباس
الـ VB هى الأساس ... بتبرمج بيها بالاحساس

ولا سيمي كولن ولا أقواس ... وتعلمها سهل لكل الناس

راكب فيها موتور نفاث ... دي سريعه جدا وباخلاص

الـ VB هى التراث ... للذكور والايناث :D

الـ VB لغة عريقه ... حتى اسأل Anwarica

من ديوان الشاعر السي شاربي "معتز شمس"
#6

كلامك سليم، ولكن القول بأن الكلاس (أو بتعبير أدق الNamespace) المسمى Microsoft.VisualBasic موجود فقط لمساعدة المبرمجين القادمين من الاصدار السادس الى الدوت نت هو خطأ شائع والكثير يردده لمجرد أنه قرأه في موقع إنترنت غير موثوق من الناحية العلمية، أعطيني مثلاً بديلاً عن inputbox وهي الدالة الموجودة فقط في تلك ال Namespace. لا أعتقد بأنه يوجد بديل سوى أن تقوم بعمل فورم على شكل inputbox.

Learn Japanese :>>> http://www.nouben.com/

#7
اقتباس
لا أعتقد بأنه يوجد بديل سوى أن تقوم بعمل فورم على شكل inputbox.

تمااااااااام..

لكن عموماً يفضل الابتعاد عن هذا الnamespace لانه ابطأ كثيراً من طرق الدوت نت..

صحيح ان مشكلة البطء لن تعاني منها في الinputbox او الmsgbox لانها تعتمد على ادخال المستخدم .. يعني مش هتفرق معاك مللي ثانية زيادة اذا كان المستخدم يحتاج لعدة ثواني للادخال..

لكن تخيل دالة مثل الVal او غيرها لو كنت تستخدمها 1000 مرة في البرنامج ..

و كل مرة ابطأ من مثيلتها في الدوت نت 1000 مرة .. ساعتها هتحس بالمشكلة

يبقى اتجه مباشرةً و بدون تردد الى الدوت نت..

اقتباس
الـ VB هى الأساس ... بتبرمج بيها بالاحساس

ولا سيمي كولن ولا أقواس ... وتعلمها سهل لكل الناس

راكب فيها موتور نفاث ... دي سريعه جدا وباخلاص

الـ VB هى التراث ... للذكور والايناث :D

الـ VB لغة عريقه ... حتى اسأل Anwarica

من ديوان الشاعر السي شاربي "معتز شمس"

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

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