السلام عليكم ورحمة الله وبركاته وبعد
سلسلة جديدة أبداها من هذه المقالة
هذه السلسلة ستكون باذن الله اسبوعية وستكون بنهاية الاسبوع –غالبا الخميس-
سأقوم باختيار فكرة معينة وسأقوم بكتابة الكود اللازم للقيام بهذه المهمة او الفكرة
1-Random Choice
كثيرة هي المرات التي نرغب فيها بعمل برنامج يقوم بعمل قرعة لارقام لاسماء أو حتى لصور
الفكرة بسيطة جديدة وكل ماتحتاج اليها للقيام بذلك هو مؤقت أو Timer
سنقوم بأخذ مثالين لهذه الفكرة
مثال 1: في هذا المثال طلب منا ان نقوم بانشاء برنامج يقوم باجراء قرعة للحضور الذين وزعت عليهم ارقام من 1 – 1000 وعلى البرنامج ان يختار من هذه الارقام
سنقوم بتصميم واجهة المستخدم مستخدمين 3 أدوات فقط
Label>>>>>lblLuckyNumber
Button>>>>>btnChoose
Timer>>>>>tmrLuckyGuest
لمن يتسائل عن طريقتي في تسمية الادوات فساقوم بشرح الفكرة لاحقا في موضوع مخصص لذلك ولكن اعلم انها هي الطريقة الرسمية لتسمية الادوات وهي ماتسمى بـــHungarian Notation
هذه هي واجهة المستخدم
الان سنقوم بالجزء المفضل الا وهو كتابة الكود ولكن قبل كتابة الكود سنقوم ببعض التغييرات للاداة tmrLuckyGuest
قم بتغيير الخاصية interval ألى 50 وهنا الرقم يحدد سرعة القرعة حيث اننا نريد عرض الارقام عند اجراء القرعة وهي تتغير بشكل سريع فالسرعة هنا نحددها من خلال هذه الخاصية
نقوم بتغيير الخاصية Enabled الى False وهذه نقطة مهمة جدا حيث انها تقوم بايقاف المؤقت حتى يتم تشغيله بواسطتنا او بواسطة المستخدم
ملاحظة قد تجد هذه الخصائص هي نفسها اي لاتحتاج الى تغيير ولكن لمن يريد ان يتلاعب بها للحصول على نتائج مختلفة
اذن المفترض ان يكون نافذة الخصائص كالاتي بالنسبة للمؤقت
انتهينا الان من الخصائص والان الى الاكواد
انقر نقرة مزدوجة على المؤقت لتنقلك الى صفحة الاكواد
هذا هو الكود الذي سنقوم بكتابته
سنقوم بشرح الكود
في الحدث الاول الخاص بالزر عند النقر Click قمنا بكتابة الاتي
tmrLuckyGuest.Enabled = True
i = 0
وهذا يعني تشغيل المؤقت للقيام باختيار الرقم العشوائي
واسندنا القيمة 0 للمتغير i وستعرف فائدته لاحقا
قمنا بتعريف المتغيرين m,i لما لهم من اهمية في اجراء القرعة
ناتي الان لكود المؤقت وهو اهم جزء في الموضوع
هذا هو الكود
Private Sub tmrLuckyGuest_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrLuckyGuest.Tick
i += 1
Dim si As New Random
lblLuckyNumber.Text = si.Next(1, 40)
If i = 80 Then
tmrLuckyGuest.Enabled = False
End If
End Sub
في السطر الاول قمنا باضافة 1 الى قيمة المتغير i
في السطر الثاني قمنا بتعريف المتغير الخاص بعملية القرعة وهو كما تلاحظ من النوع Random الذي يقوم باختيار الارقام العشوائية (انتبه الى كلمة NEW فهي اهم من الكود كاملا))
ثم بعد ذلك قمنا بجعل البرنامج يضع الرقم العشوائي الذي اختاره باستخدام الطريقة
si.next(1,40) الى lblLuckNumber
الى هنا اكتمل الموضوع ولكن لاحظ اننا هنا قمنا فقط باختيار رقم عشوائي ووضعه في مربع النص ولكن لحظة
كيف نقوم بجعل مربع النص يعرض جميع الارقام بصورة سريعة حتى يستقر على رقم معين بعد فترة معينة
هنا ياتي دور المتغير i
لاحظ في كود الزر اسندنا له القيمة 0 حتى نجعله في نقطة البداية
وفي كل مرة ينفذ حدث المؤقت يتم زيادة القيمة بمقدار 1
اذن حدث المؤقت لن يحدث مرة واحدة وانما سيحدث عدة مرات حتى نوقفه باستخدام الخاصية Enabled ونحوله الى False اذن هو سيقوم باختيار رقم عشوائي ووضعه كل مرة في مربع النص وقد يستمر الى ما لانهاية ولكنا نريده لمدة معينة فلذلك اضفنا كود التحقق من عدد المرات وهي 80 مرة مثلا ويمكنك تغييره باي عدد من المرات تريده بحسب ماتريد
If i = 80 Then
tmrLuckyGuest.Enabled = False
End If
اذن سينفذ حدث المؤقت كل 50 جزء من الثانية ل80 مرة ثم سيتوقف وعندما يتوقف سيعرض اخر رقم اختاره
اذن كان هذا هو كود الاسبوع
نستعرض واياكم فكرة المثال الثاني ونؤجل الكود الخاص به الى الاسبوع القادم
2-طلب منا تصميم برنامج لعمل قرعة للفائزين في احدى المسابقات بحيث يقوم بعرض قرعة باسمائهم ويختار اسما معينا
كيف نقوم بذلك
نترك الجواب للاسبوع القادم
تحياتي
ليست هناك تعليقات:
إرسال تعليق