عرض مشاركة واحدة
قديم 11/12/2005   #7
شب و شيخ الشباب ملك الهكرز
عضو
-- مستشــــــــــار --
 
الصورة الرمزية لـ ملك الهكرز
ملك الهكرز is offline
 
نورنا ب:
Jul 2005
المطرح:
بالسيرفر
مشاركات:
2,180

افتراضي


خلاصة الدروس السابقة:
تناولنا في الدرسين السابقين الخلفية الأساسية التي يعتمد عليها المبرمج بشكل عام، واستطعنا بهذه الخلفية البسيطة أن ننتج برامجاً صغيرة لا بأس بها كبداية، والذي يجب أن نلاحظه هو أننا لم نتطرق في تناولنا للدرسين السابقين لأي من الوظائف أو الأوامر الخاصة بالفيجول بيسيك، غير الأمرين " Print " و " End " على ما أذكر، وبداية من هذا الدرس والدروس التي تليه سنتناول بعض المواضيع بتخصص أكبر، وفي ثنايا هذه المواضيع سنحاول زيادة الحصيلة المكتسبة من وظائف وأوامر الفيجول بيسيك الخاصة ،،،

محتوى الدرس الثالث:

المواضيع الأساسية:
* التعليقات
* الثوابت

الوظائف والأوامر الجديدة:

* CLS
* Beep
* Form.Show
* Form.Hide

الإجراءات الجديدة:

* Time
* Date


التعليقات Comments

تعد التعليقات أحد الأدوات الهامة التي لا يستغني عنها المبرمج، خصوصاً في البرامج الكبيرة والمتشعبة، ويبدو معناها واضحاً من عنوانها، فهي ملاحظات أو تعليقات يقوم المبرمج بإضافتها في شاشة الكود لكي تنبهه إلى أمر ما أو تشرح له نقطة معينة؛ حتى يستطيع المبرمج الرجوع إليها والانتباه لها أثناء تطوير البرنامج في وقت لاحق...
ويتعامل الفيجول بيسيك مع هذه التعليقات على أنها غير موجودة، بمعنى آخر فليس لها أي تأثير على الكود ولا على سير البرنامج ..

طريقة إصافة التعليقات:
ويمكننا إضافة هذه التعليقات بطريقتين:
الطريقة الأولى: بإضافة كلمة REM قبل التعليق.
الطريقة الثانية: بإضافة الحرف (') قبل التعليق.

التطبيق العملي:
سنقوم الآن بعمل برنامج بسيط جداً، سنستخدم فيه التعليقات، وفي نفس الوقت سنتعرف أمرين جديدين من أوامر الفيجول بيسيك وهما الأمرين CLS و BEEP ...
- يتكون البرنامج من نموذج Form واحد يحتوي على أربعة أزرة كالتالي:



- في حدث النقر على الزر Print سنكتب الكود التالي:

كود

Print "الإبداع .. ليس بالكلام وإنما بالعمل"
REM يقوم الأمر السابق بطباعة عبارة ما على النموذج


- في حدث النقر على الزر Cls سنكتب الكود التالي:

كود

Cls
REM يقوم الأمر السابق بمسح ماهو مطبوع على النموذج


- في حدث النقر على الزر Beep سنكتب الكود التالي:

كود

Beep
' يقوم الأمر السابق بإصدار صوت تنبيهي


- في حدث النقر على الزر Exit سنكتب الكود التالي:

كود

End
' يقوم الأمر السابق بإنهاء البرنامج


كما ترى في الأكواد السابقة استخدمنا أوامر بسيطة جداً، وأظن أن معناها واضح من التعليقات المكتوبة أسفل منها ..
لاحظ أننا استخدمنا الطريقتين في إضافة التعليقات ..
لاحظ أيضاً أن التعليق يأخذ اللون الأخضر في نافذة الكود ..


[COLOR=sandybrown);] [/color]



الثوابت Constants

الثوابت هي عبارة عن أسماء تحمل قيماً ثابتة لا تتغير على الإطلاق أثناء تنفيذ البرنامج، على سبيل المثال من الممكن أن نعلن عن الاسم XXX كثابت يساوي الرقم 500، وبالتالي فعندما نكتب XXX في أي موضع من كود البرنامج فهذا يماثل تماماً ما لو كتبنا الرقم 500 نفسه .. ولتوضيح ذلك أكثر أجب على هذا االسؤال: مالذي سيحدث لو كتبنا الأمر التالي Print XXX
الجواب الصحيح هو أنه سيتم طباعة الرقم 500 على النموذج وذلك لأننا جعلنا الاسم XXX يساوي قيمة ثابتة وهي الرقم 500، وهو يساوي تماماً الأمر التالي Print "500"
فالنتيجة واحدة في كلا الحالتين .. وقد يفكر البعض بأنه ما دامت النتيجة واحدة فلماذا نستخدم الثوابت أصلاً ؟؟ ولماذا لا نضع القيمة الموجودة في الثابت مباشرة كما فعلنا في الأمر الأخير ؟؟

الفائدة من استخدام الثوابت:
أعتقد أن الفائدة من ذلك كبيرة وعظيمة، ويتحدد مقدار هذه الفائدة بقدر حاجة المبرمج، وسنحاول هنا أن نذكر بعض الفوائد العامة لاستخدامها:

1- اختصار الوقت والجهد:
لنفترض أننا نقوم بعمل برنامج رسوميات، وبطبيعة الحال فإننا لابد أن نستخدم الألوان كثيراً، وكما تعلمون فإن رمز اللون الأحمر لو أردنا كتابته سيكون كالتالي: (RGB(255,0,0 أو كالتالي &H000000FF&
ورمز اللون الأخضر (RGB(0,255,0 أو &H0000FF00&
ورمز اللون الأزرق (RGB(0,0,255 أو &H00FF0000&
وكما ترى فإن حفظ هذه الأرقام ليس بالشيء اليسير، كما أنه يوجد الكثير من الألوان غير السابقة، ولو كتبنا هذه الرموز في كل مرة نحتاج فيها إلى تعريف الألوان فإن ذلك بلا شك سيكون أمراً شاقاً ومملاً ..
وهنا تبرز فائدة من فوائد الثوابت حيثم يمكننا أن نعلن عن الاسم red كثابت يحمل القيمة &H000000FF&، وعن الاسم green كثابت يحمل القيمة &H0000FF00&، وعن الاسم blue كثابت يحمل القيمة &H00FF0000&، وبعد ذلك وعندما نحتاج لرمز اللون الأحمر فكل ما علينا هو كتابة الكلمة red مكانها، وكذلك الحال بالنسبة للونين الباقيين، وبذلك يكون الأمر سهلاً جداُ ...
ملحوظة: ذكرت سابقاً أن مقدار الأهمية يتحدد بحسب مقدار الحاجة، فقد يرى البعض أنه بإمكانه أن يكتب رمز اللون الأحمر هكذا &H000000FF&، ولا حاجة به إلى استخدام الثوابت، وهذا أمر شخصي ... ولكن مما لاشك فيه أن مقدار الحاجة يزداد في مواضع أخرى، على سبيل المثال عند تعاملنا مع الريجستري فإننا نستخدم الأرقام على غرار ما يلي &H80000003 بكثرة، وعندها سيكون من الأفضل لو استعضنا عن مثل هذه الأرقام بثوابت تقرب المعنى وتسهل عملية الإدخال على المبرمج ...

2- القدرة على التعديل والتغيير لاحقاً:
سنفترض الآن أننا نستخدم في نافذة الكود قيمة معينة، وبكثرة، ولتكن على سبيل المثال رقم إصدارة البرنامج (1.0.0) .. فما هو الحل لو قمنا بعمل إصدارة جديدة من نفس البرنامج تحمل الرقم (2.0.0) هل سنقوم بتغيير جميع الأرقام (1.0.0) إلى (2.0.0) يدوياً ؟ ألا ترى أن ذلك غير احترافي ؟؟
كان من الأسهل منذ البداية أن نضع القيمة (1.0.0) في ثابت معين، وليكن اسمه مثلاً Version، وكلما احتجنا لذكر رقم الإصدارة فإننا سنعوض عنها بهذا الثابت، ولو أردنا بعد ذلك تغيير رقم الإصدارة فكل ما علينا هو تغيير قيمة الثابت Version إلى الرقم الجديد، وبذلك تتم عملية التعديل مرة واحدة فقط للوصول إلى النتيجة المطلوبة ...

شروط اسم الثابت:
عندما نريد استخدام الثوابت فإننا لابد أن نعلن عن اسمها أولاً وعن قيمتها، ويشترط في اسم الثابت ثلاثة شروط:
1- أن يبدأ بحرف هجائي.
2- أن لا يزيد عدد حروفه عن 40 حرفاً.
3- أن لا يحتوي اسم الثابت على مسافات، وإذا كان من الضروري استخدام المسافات فيمكنك الاستعاضة عنها بـ (_).
4- أن لا يكون محجوزاً للفيجول بيسيك، إذ ليس من المعقول أن نجعل اسم الثابت Print أو CLS أو غير ذلك من الأوامر الخاصة بالفيجول بيسيك.

كيفية الإعلان عن الثوابت ومداها:
كما ذكرنا سابقاً فإنه لاستخدام الثوابت لابد من الإعلان عنها أولاً ..
وطريقة الإعلان بسيطة جداً ولا تتعدى السطر الواحد، ولكنها تختلف باختلاف المدى الذي نريد جعله لهذا الثابت، حيث أن الثابت من حيث المدى ينقسم إلى ثلاثة أقسام:

1- ثابت عام:
ويمكن استخدام هذا الثابت بعد الإعلان عنه في أي مكان من البرنامج، ويتم الإعلان عن هذا النوع من الثوابت في ملف برمجة منفصل Module، ويمكن إنشاء هذا الملف عن طريق اختيار الأمر Add Module من القائمة Project، ثم بعد أن إنشاء هذا الملف نقوم بالإعلان عن الثابت بالصيغة التالية:
Public Const اسم الثابت = القيمة التي سيحملها
على سبيل المثال:
Public Const XXX = 500

2- ثابت على مستوى النموذج:
ويتم الإعلان عنه في نافذة الكود الخاصة بالنموذج الـ Form، وتحديداً في قسم التصريحات العامة بأعلى نافذة الكود General_Declarations ... وفي هذا القسم يتم الإعلان عن الثوابت والمتغيرات وتوابع الـ API والذي سيأتي الحديث عن كل ذلك لاحقاً بإذن الله ... انظر الصورة التالية:



والفرق بين هذا النوع والذي قبله، أن الذي قبله أن الأول يسري مداه على جميع نماذج البرنامج، أما هذا فلا يسري مداه إلا في النموذج المعلن عنه فيه فقط ... وصيغة الإعلان كالتالي:
Const اسم الثابت = القيمة التي سيحملها
على سبيل المثال:
Const XXX = 500

3- ثابت على مستوى الحدث أو الإجراء:
ويتم الإعلان عنه داخل الحدث أو الإجراء، ويسري مداه داخل الحدث أو الإجراء المعلن عنه فيه فقط، فلو أعلنا عن ثابت ما في حدث معين فإنه لا يُصبح ذو أهمية في أي حدث آخر وصيغة الإعلان لا تختلف عن النوع السابق بشيء، ولكن الذي يختلف فقط هو مكان الإعلان، ففي النوع السابق يتم الإعلان في قسم التصريحات العامة، بينما النوع الأخير يتم الإعلان عنه داخل الحدث أو الإجراء نفسه ..

«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»(ملك الهكرز)«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»

ان كانــــــت جنــــة الله في الدنيــا فــهي دمشــــــــــــــــــــــــــــــــقُ

الرجاء من كافة الاعضاء الكرام (والاقارب) عدم ارسال رسائل تخص الاختراق والندف
وتانكيو
  رد مع اقتباس
 
Page generated in 0.05110 seconds with 10 queries