القائمة الرئيسية

الصفحات

ادوات التحكم | شرح اداة Timer | برمجة مرئية















ادوات التحكم | شرح اداة Timer | برمجة مرئية




أداة التحكم المؤقت ( timer )

تقوم بإنشاء حدث بعد فاصل زمني محدد ، مع خيار إنشاء أحداث متكررة .

اي ان هذه الأداة مهمتها تنفيذ عمليه خلال مدة محددة او بعد كل فاصل زمني محدد .
هذه الأداة تقوم برفع حدث في التطبيق الخاص بك بعد انقضاء عدد المللي ثانية في خاصية الفاصل الزمني ( Interval )

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

هذه الأداة من الأدوات التي هي non visual  أي غير مرئية في الفورم وتظهر اسفل الفورم .

يمكنك اضافتها للفورم من قائمة أدوات التحكم او برمجياً


يمكنك اضافتها للفورم من قائمة أدوات التحكم او برمجياً

الخصائص المهمه التابعة لهذه الأداة
الخاصية Enabled : هي المسئوله عن تفعيل الأداة او عدم تفعيلها قيمتها الافتراضيه هي false  أي انك عندما تقوم بسحب الأداة للفورم تكون غير مفعله  لو تقوم بعمل أي شي في الحدث Tick  فإنه لن يحدث شي والسبب ان الخاصية Enabled  تساوي false  ولكي يعمل الحدث قم بجعل قيمه الخاصية الى true

الخاصية Interval
هذه الخاصية تأخذ قيمه من نوع int  
من خلالها نحدد متى يحدث الحدث
فمثلاً اذا قمت بعمل قيمه للخاصيه كالتالي
            timer1.Interval = 3000;
فهذا يعني سوف يتم تشغيل الحدث Tick  بعد كل 3 ثواني
أي ان الف مللي ثانية يساوي ثانية واحدة
اذا اردت تنفيذ عمليه بالثواني كل ما عليك هو ان
ثانية * 1000
أي انك تضع عدد الثواني في المعادلة السابقة وتضربه في 1000

اما اذا اردت بالدقائق تكتب عدد الدقائق وتضربها في 60 في 1000
دقيقة * 60 * 1000

لكي تقوم بعمليه بعد 3 دقائق كل ماعليك فعله هو كالتالي

            timer1.Interval = 3*60*1000;


الحدث Tick
الحدث تيك وهو الحدث الذي سوف يتم تنفيذ العمليه بداخله بعد مرور المدة الزمنية المحددة في الخاصية Interval .
هل تلاحظ الى مايدل اسم الحدث وكإن هو يشبه صوت عداد الثواني في ساعة الحائط .

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

المثال الأول يقوم بتغيير لون الشاشة تلقائياً بعد مرور 3 ثواني في الحدث Tick



كود





المثال الثاني يقوم بتبديل الوان 2 ازرار الزر الأول لونه احمر والزر الثاني لونه اخضر سوف نقوم بتبديل الالون في ما بينهم كل ثانية .


كود




مع العلم انهو تم تغيير قيمه الخاصية Interval  الى 1000  (ثانية).

ملاحظة : كل ما كانت قيمة Interval    اقل من ثانية تكون الأداة Timer  سريعه .
بمعنى انك اذا عملت 100  للخاصية Interval  فانها تعتبر 100  مللي ثاني أي جزء من الثانية.

المثال الثالث سوف نقوم بعمل قائمة منسدله تخرج من الجهه اليسرى
عندما يتم الضغط على زر القائمة .

لكي تقوم بتطبيق المثال هذا قم بإضافة الأدوات التاليه للفورم :
Panel1  خاصية Dock  تساوي Top الون Orange
Panel2  خاصية Dock  تساوي Left الون SteelBlue
Button  ضعة في الجهه اليسرى للحاوية panel1  واسمه البرمجي btnMenu
Timer  خاصية Enabled  تساوي true  و خاصية Interval  تساوي 100


الان القائمة التي ستخرج من الجهه اليسرى هي panel2  قم بإضافة اليها بعص الازرار  

التصميم النهائي سيبدو بشكل التالي :





 
اخر خطوة في التصميم قم بتعديل الخاصية Width  التابعه Panel2  الى 0
كما في الشكل التالي 


 

سوف تختفي القائمة بما تحتويه من ازرار لايهم سوف نقوم بإظهارها وإخفائها برمجيا.
الان بعد ان انتهينا من التصميم   نبدأ بالبرمجة

سوف ندخل لاحداث الزر ونفتح دالة الحدث Click    بعد ذلك نفتح الحدث Tick  التابع لل Timer



كود





شرح الكود :
bool showMenu;

في البداية قمنا بتعريف متغير من نوع bool    هذا المتغير هو الذي سوف يحدد للتايمر في ما اذا كانت القائمة ظاهره او مخفيه.

عندما يقوم المستخدم بالضغط على الزر سوف يتم تنفيذ ما بداخل داله الحدث Click .
if (panel2.Visible)

سيبدا المترجم بفحص الشرط الأول في حاله كان صحيح سيدخل وينفذ مابداخل if  الشرطية  اما اذا كان غير صحيح سوف ينتقل الى else
else
            {
                showMenu = true ;
                panel2.Show();
                timer1.Start();
            }
سوف ينفذ الاسطر التي بداخل else  اسندنا قيمه true  للمتغير showMenu
ومن ثم قمنا بعرض الأداة panel2    و السبب انهو عند الضغط مرة أخرى على الزر يقوم بالدخول الى داله الحدث Click  وينفذ الشرط الأول.
ومن ثم قمنا بتشغيل ال timer    الان بعد السطر الأخير سوف يذهب الى دالة الحدث Tick  .
            if (showMenu)
            {
                if (panel2.Width >= 155)
                    timer1.Stop();

                panel2.Width += 14;


            }
عندما يفحص المترجم الجملة الشرطية if  سيرى ان قيمه showMenu تساوي true  لذالك سيتم تنفيذ ما بداخل هذا الشرط
بعد ذالك ينتقل الى السطر التالي ويجد ان هناك شرط اخر  ويفحص الشرط سيجد ان الشرط غير صحيح لذالك سوف يتم ترك السطر الذي بعد الجمله الشرطيه   لان الجملة الشرطيه التي لاتحوي على قوس بداية ونهاية فإن السطر البرمجي التالي يكون مرتبط بالشرط

بعد ذلك سوف يتم زيادة عرض الأداة panel2  (القائمة) بمقدار 14  
سوف تتكرر هذه العملية حتى يصبح قيمة الخاصية Width  اكبر من 155
عندها يتوقف ال timer  .

ملاحظة : يتم تكرار العملية السابقة في كل 100 مللي ثانية

الان المؤقت توقف والقائمة تم إظهارها في الفورم.

الان عندما يقوم المستخدم بالضغط على القائمة مرة اخرى سوف تختلف العمليه أي انهو سوف يتم تنفيذ الاكواد الخاصة بإخفاها .
سوف ينفذ الشرط الأول في دالة الحدث Click  ومن ثم يقوم بإسناد قميه المتغير المنطقي الى false  , ومن ثم يقوم بتشغيل timer  بعد ذلك سوف يتم تنفيذ الاكواد بداخل الدالة Tick  التي تقوم بإخفاء القائمة.

ملاحظة حول أداة Timer  عندما تقوم بإنشائها برمجياً فإنك لاتحتاج الى الى اضافتها الى الفورم يتم اضافتها تلقائيا فقط قم بتعديل خاصية Enabled  الى true
مثال على انشاء اوبجكت من نوع Timer
Timer t = new Timer ();

نهاية الشرح.....
أنت الان في اول موضوع
هل اعجبك الموضوع :

تعليقات