أخوية  

أخوية سوريا: تجمع شبابي سوري (ثقافي، فكري، اجتماعي) بإطار حراك مجتمع مدني - ينشط في دعم الحرية المدنية، التعددية الديمقراطية، والتوعية بما نسميه الحد الأدنى من المسؤولية العامة. نحو عقد اجتماعي صحي سليم، به من الأكسجن ما يكف لجميع المواطنين والقاطنين.
أخذ مكانه في 2003 و توقف قسراً نهاية 2009 - النسخة الحالية هنا هي ارشيفية للتصفح فقط
ردني  لورا   أخوية > رقميات > كمبيوتر > برمجة و أنظمة تشغيل

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

سوريا دورة في فيجول بيسك (مبتدئين)


بتمنا الكل يستفيد
التعرف على شاشات الفيجول بيسيك:
بداية وقبل كل شيء لابد أن نتعرف على شاشات الفيجول، لكي تسهل عملية التعامل معها فيما بعد:
عندما نفتح الفيجول بيسك ستظهر شاشة التحيه للحظات ثم تختفى ليظهر مربع الحوار التالى وهو يتيح لك إنشاء مشروع جديد New، أو فتح مشروع موجود Existing، أو فتح مشروع تم عمله قريباً Recent.


سنختار مشروع قياسى Standerd EXE، ثم نضغط المفتاح Open، بعدها ستظهر لك شاشه الفيجول بيسك العاديه(شاشة بيئة التطوير) والتى ستصبح مألوفة بالنسبه لك قريبا إن شاء الله. ومن هذه الشاشه تبدأ صناعة البرنامج:


من المهم جداً أن نتعرف على محتويات الشاشة السابقة بالتفصيل، ولا تنزعج في البداية إذا وجدت الأمر صعباً ومعقداً، فسرعان ما ستعتاد على الأمر وسيكون ذلك من أسهل الأشياء بالنسبة إليك.

النموذج (الفورمة) Form:
وهى مساحة العمل الأساسيه، أو الواجهة الأساسية لبرنامجك والذي ستظهر للمستخدم عند تشغيل البرنامج.


شريط أدوات التحكم Toolbox:
ويحتوي هذا الشريط على الأدوات التي سنستخدمها في البرمجة، والأدوات هي عبارة عن الكائنات التي يمكن وضعها في النموذج والذي يتعامل المستخدم مع البرنامج من خلالها.

وأهم الأدوات التي سنستخدمها في هذا الدرس هي الأداة Command Button ،، وهي أداة الزر ،، ووظيفتها إظهار زر للمستخدم بحيث يستطيع الضغط عليه لغرض معين.

شاشة الخصائص Properties:

ومن خلالها نستطيع تغيير خصائص أي أداة في البرنامج .. طولها ، عرضها، مكانها، لونها ... الخ.
على سبيل المثال لنفرض أن لدينا هاتين الأداتين وهما زرين: و
ما الذي تلاحظه على هاتين الأداتين ؟ هل هما بنفس الشكل ؟ كما ترى الجواب لا، فإن الزر الأول يختلف عن الزر الثاني في بعض الأشياء، حيث أن خاصية نوع الخط بالنسبة للزر الأول هي Tahoma بينما الزر الثاني Andalus، وخاصية حجم الخط بالنسبة للزر الأول هي 8 بينما الزر الثاني 14، كما أن خاصية الطول والعرض لكل منهما مختلفة و.. و.. الخ. وهذا ما يمكن تسميته بالخصائص التي تميز كل أداة عن الأخرى،

وأهم الخصائص الذي سنحتاجها حالياً:
الخاصية Name وتعني الاسم الخاص بالأداة، ولا يظهر هذا الاسم للمستخدم، وإنما يحتاجه فقط المبرمج.
الخاصية Caption وهي العنوان الذي سيظهر على الأداة للمستخدم.
الخاصية FontName وتعني نوع الخط.
الخاصية FontSize وتعني حجم الخط.
الخاصية ForeColor وتعني لون الخط.
الخاصية Top وتحدد مكان الأداة رأسياً.
الخاصية Left وتحدد مكان الأداة أفقياً.
الخاصية Hight وتعني طول الأداة.
الخاصية Width وتعني عرض الأداة.

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

تعتمد البرمجة باستخدام الفيجول بيسيك على التفاعل مع المستخدم من خلال الأدوات والأحداث.. ما معنى هذا الكلام؟؟ لنفترض أننا نريد أن نضع في هذا النموذج الفارغ زراً، وعندما يضغط المستخدم على هذا الزر يتم كتابة (مرحباً) في النموذج .. هنا نكون قد تفاعلنا مع المستخدم عن طريق وضع الأداة وهي الزر في النموذج وأصبح من المتاح له أن يستخدم هذا الزر كما يريد، ثم تفاعلنا معه مرة أخرى عن طريق كتابة (مرحبا) عندما يتم حدث الضغط أو النقر على الزر.
هذا يعني أن الزر أداة .. وأن النقر على الزر حدث.

دعنا من ذلك الآن ولنبدأ في تصميم برنامجنا الأول مباشرة، وسيتضح الأمر بعد ذلك، وفي البداية لابد أن نعلم أن البرمجة تمر بثلاث مراحل أساسية وهي:

المرحلة الأولى: التخيل العام لشكل البرنامج.

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

المرحلة الثانية: تصميم الشكل العام للبرنامج.

وفيها نضع الأدوات على النموذج ونقوم بضبط خصائصها حسب رغبتنا وحاجتنا.

المرحلة الثالثة: كتابة الكود الخاص للبرنامج.

وهي المرحلة الأخيرة، وفيها نضع الأكواد الخاصة بالأحداث، على سبيل المثال: عندما يحدث الضغط على الزر قم بكذا، وعندما يحدث أن تمر الماوس على الزر قم بكذا، وعندما يحدث اختيار المستخدم للصورة قم بكذا ... الخ.



[COLOR=yellow);]البرنامج الأول[/color]


نريد عمل برنامج يحتوي على زرين فقط [ترحيب - خروج]، وعندما يحدث الضغط Click على الزر الأول يقوم بكتابة (مرحباً) على النموذج، وعندما نضغط على الزر الثاني يقوم بالخروج من البرنامج، وهذه هي المرحلة الأولى (التخطيط).

ولندخل في المرحلة الثانية مباشرة (التصميم): لذلك قم باختيار الأداة Command Button (الزر) من نافذة الأدوات التي أشرنا إليها سابقاً، وقم برسم زرين داخل النموذج، بحيث يبدو الشكل هكذا:


بعد ذلك يلزمنا ضبط الخصائص الخاصة بكل أدوات البرنامج، لذلك قم بالنقر على أي نقطة في النموذج ثم اذهب إلى شاشة الخصائص لضبط خصائص النموذج، وسنكتفي يتغيير خاصية واحدة فقط وهي خاصية الـ Caption (عنوان النموذج) وسنغيرها إلى "دورة الإبداع -- البرنامج الأول" .. هل لاحظت الآن التغيير الذي حدث بالنسبة للنموذج؟؟
لننتقل الآن إلى الأداة Command1 وهي أداة الزر الأول، ولنقم بتغيير خصائصها كالتالي: الخاصية Caption (عنوان الزر) غيرها إلى "ترحيب" - الخاصية Font غيرها إلى خط أندلسي حجمه 14 - الخاصية Hight (الطول) إلى 700 - الخاصية Width إلى 1500.
ثم لنقم بتغيير خصائص الأداة Command2 كالتالي: الخاصية Caption (عنوان الزر) غيرها إلى "خروج" - الخاصية Font غيرها إلى خط Tahoma حجمه 14 - الخاصية Hight (الطول) إلى 700 - الخاصية Width (العرض) إلى 1500.

وبذلك نكون قد انتهينا من المرحلة الثانية وهي التصميم وبقيت المرحلة الأخيرة وهي: (كتابة الكود).
أولاً لإظهار شاشة الكود قم بالنقر بزر الماوس الأيمن على أي مكان في الفورم، واختر View Code ..

ستظهر لك الشاشة التالية:

وفيها ستجد خانتي اختيارات، الأولى من اليسار (General) وفيها نضع اسم الأداة التي نريد أن نكتب الكود لها، وفي الثانية (Declarations)نضع اسم الحدث الذي نريد أن ينتفذ عند حدوثه الكود.
ربما لم تفهم شيئاً ،، إليك الأمر بطريقة مبسطة ،، الآن نحن لدينا زر ترحيب على النموذج ،، وعندما يحدث الضغط Click على هذا الزر فإن البرنامج يقوم بكتابة "مرحباً" على النموذج.
إذا نحن نريد أن نكتب الكود الخاص بكتابة مرحباً على النموذج فأين نكتبه؟؟ من البديهي أننا سنكتبه في الأداة Command1 وهو اسم زر الترحيب ،، كما أنه من البديهي أيضاً أننا سنختار الحدث Click وهو الضغط على هذا الزر.
وسيكون الشكل كالتالي:


كما ترى يوجد سطران مكتوبان، لا تهتم لهما كثيراً، كل ما يهمنا هو كتابة الكود وسط هذين السطرين، وإليك الكود:
"مرحباً" Print

الآن نفذ نفس الخطوات من جديد بالنسبة للزر الآخر Command2 والخاص بالخروج، وقم بكتابة هذا الكود في داخله:
End

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




إلى هنا يبدو أني قد أطلت عليكم كثيراً ولم يبق سوى ملحوظة بسيطة أردت أن أنوه عليها، وهي أننا في البرنامج السابق قمنا بتغيير الخصائص في المرحلة الثانية، وهي مرحلة التصميم، ولكن من الممكن أيضاً تغيير الخصائص في المرحلة الثالثة وذلك بواسطة الكود ،، كالتالي: نكتب اسم الأداة، ثم نقطة، ثم اسم الخاصية الذي نريد تغييرها، ثم علامة يساوي =، ثم ما نريد وضعه في الخاصية، وإليك المثال:
Command1.Caption = "ترحيب"
وفي هذا الإطار فإننا نعتبر النموذج الفورم عبارة عن أداة أيضاً يمكن تغيير خصائصها في المرحلة الثالثة ،، على سبيل المثال:
Form1.BackColor = 0









الأول: عبارة عن برنامج يحتوي على ثلاثة أزرار [تجربة - النتيجة - خروج]عندما نقوم بالضغط على الزر الأول [تجربة] تظهر لنا العبارة التالية على النموذج "هذه هي التجربة الأولى"،، وعندما نضغط على الزر الثاني [النتيجة] تظهر لنا العبارة التالية على النموذج "تمت التجربة بنجاح"،، وعندما نضغط على الزر الثالث [خروج] يتم إغلاق البرنامج.

الثاني: برنامج يحتوي على ثلاثة أزرار [عنوان البرنامج - لون الخلفية - خروج] وعندما نضغط على الزر الأول [عنوان البرنامج] يتغير العنوان الخاص بالنموذج الفورمة إلى "أهلاُ بكم في منتديات الإبداع"، وعندما نضغط على الزر الثاني [لون الخلفية] يتغير لون الخلفية للنموذج (الفورم ) إلى اللون الأحمر، وعندما نضغط على الزر الثالث [خروج] يتم إغلاق البرنامج.

الأخير: سنترك لك الحرية المطلقة في عمله كيف تشاء مستخدماً في ذلك خيالك لعمل أي برنامج تستطيع عمله.

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

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

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

افتراضي الدرس الثاني


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

مراحل البرمجة:

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

المرحلة الأولى: التخطيط.

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



[COLOR=sandybrown);] [/color]



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





كما ترى فإن النموذج السابق يحتوي على اثنا عشرة أداة (أربعة أدوات مكررة ثلاث مرات):
في أعلى اليمين ثلاث أدوات عنوان Lable.
في أعلى اليسار ثلاث أدوات نص TextBox.
في أسفل اليمين ثلاث أدوات صور PictureBox.
في أسفل اليسار ثلاث أدوات أزرة CommandButton.

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

وهذا ما نستطيع أن نسميه بتغيير خصائص الأدوات، فكما ترى فإن الثلاث أدوات بأعلى اليمين كلها أدوات عنوان Lable، ولكنها تختلف عن بعضها بالشكل، فالعنوان الأول ذو لون برتقالي، والثاني أخضر، والثالث أزرق .. وهكذا.

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



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

افتراضي


سنذكر الآن أهم الخصائص المشتركة والتي نجدها في معظم الأدوات:

خاصية الاسم Name:

وهي خاصية تحدد اسماً رمزياً للاداة، ولا يمثل هذا الاسم أهمية بالنسبة للمستخدم، بل إنه لا يستطيع معرفته أصلاً، ولكنه يمثل أهمية كبيرة بالنسبة للمبرمج حيث أنه لا يستطيع التعامل مع الأداة إلا من خلال اسمها هذا، وسنستخدم هذا الاسم كثيراً ولكن في المرحلة الثالثة وهي مرحلة كتابة الكود.
وعندما نقوم برسم الأداة في النموذج فإنها تأخذ اسماً افتراضياً، على سبيل المثال عندما نقوم برسم أداة عنوان فإنها ستأخذ الاسم Lable1، وإذا رسمنا أداة عنوان أخرى فإنها ستأخذ الاسم Lable2، وكذلك الحال بالنسبة لباقي الأدوات، ومن الأفضل تغيير هذا الاسم الافتراضي باسم آخر بحيث يميز الأداة، مثلاً إذا كان لدينا ثلاث أزرار [نسخ] و [قص] و[لصق] فإنها ستأخذ الأسماء Commadn1، Command2، Command3، ويمكن مع تشعب البرنامج وضخامته أن تمثل هذه الأسماء مشكلة فنحن لا نعرف هل هذا الاسم خاص بزر النسخ أو اللصق أو القص ... وخروجاً من هذه المشاكل فإننا نقوم بتغيير أسمائها مثلاً: نسمي زر النسخ CmdCopy، وزر القص CmdCut، وزر اللصق CmdPaste، وفي هذه الأسماء استخدمنا الأحرف الثلاثة الأول Cmd للإشارة إلى أن هذه الأداة أداة زر ( اختصاراً لكلمة CommandButton ) ثم بعدها كتبنا كلمة تدل على وظيفة هذه الأداة ليسهل الرجوع إليها فيما بعد ... أخيراً: يشترط في هذا الاسم أن لا يكون رقما، وأن لا يكون أكثر من أربعين حرفا.


خاصية العنوان Caption:

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


خاصية من اليمين إلى اليسار Right to Left:

ونجد هذه الخاصية أكثر في الأدوات التي تتعامل مع النصوص، وهي تحدد اتجاه الكتابة هل هو من اليسار إلى اليمين أومن اليمين إلى اليسار؟ وتكون القيمة الافترضية من اليسار إلى اليمين ويمكنك التغيير كما تشاء ... في هذا الصدد نذكر خاصية أخرى وهي خاصية المحاذاة Alignment وهي تقوم بمحاذاة النص داخل الأداة، والقيمة 0 تعني المحاذاة إلى اليسار، والقيمة 1 تعني المحاذاة إلى اليمين، والقيمة 2 تعني توسيط النص.


خصائص خط الكتابة Font:

وفيها نحدد نوع الخط، وحجمه، وتخانته، وميله، وتسطيره.


خصائص الألوان:

خاصية لون الخلفية BackColor وتحدد لون الخلفية للأداة ...
خاصية لون الخط ForeColor وتحدد لون الخط ...


خاصية شكل المؤشر MousePointer:

كما تعرف فإن مؤشر الماوس عادة ما يأخذ رمز السهم المتجه إلى أعلى اليسار، ويتيح لك الفيجول بيسيك تغيير شكل المؤشر من هذا الشكل التقليدي إلى أي شكل آخر ترغب فيه وذلك من خلال هذه الخاصية ... فبعد تغييرها تجد أن مؤشر الماوس يتغير عند مرورك على الأداة التي غيرت فيها هذه الخاصية.


خاصية التمكين Enabled:

وهي خاصية تحدد ما إذا كان المستخدم يستطيع استخدام الأداة أو لا، فإذا كانت تساوي True فهذا يعني أن المستخدم يمكنه التعامل مع الأداة، وإذا كانت تساوي False فإن الأداة تظهر باهتة اللون، ولن يتمكن المستخدم من التعامل معها ... وسيتضح ذلك أكثر بالتجربة ... جرب ان تدرج أداتي زر، واجعل خاصية الـ Enabled لأحدهما True، وللأخرى False، ثم اضغط على F5 وانظر الفرق ...


خاصية الظهور Visible:

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


خصائص الحجم Hight, Width:

ومن خلالهما نحدد طول الأداة وعرضها.


خصائص الموقع Top, Left:

ومن خلالهما نحدد موقع الأداة رأسياً وأفقياً.


خاصية التلميح ToolTipText:

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

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


+ لا يمكنك فهم هذه الخصائص فهماً جيداً بدون التجربة، لذلك قم بتجربتها كلها لكي ترسخ المعلومة في ذهنك.

++ نحن الآن نقوم بتغيير الخصائص في المرحلة الثانية (التصميم)، ويجب أن تعلم أنه يمكنك تغيير معظم هذه الخصائص أيضاً في المرحلة الثالثة (كتابة الكود) .. ولذلك قاعدة معينة وهي:
1. نكتب اسم الأداة.
2. ثم نكتب نقطة بعد الاسم مباشرة.
3. نكتب بعد النقطة اسم الخاصية.
4. بعدها نكتب علامة يساوي =.
5. أخيراً نكتب القيمة التي نريد أن نمررها للخاصية.
على سبيل المثال لو أردنا أن نغير العنوان الخاص بأداة زر اسمه Command1، فإننا نكتب الكود التالي:
"نسخ" = Command1.Caption

هنا سيقوم بتغيير عنوان الأداة إلى (نسخ).

+++ الخصائص السابقة هي خصائص مشتركة، أي أن معظم الأدوات تشترك فيها، ولكن مما لا شك فيه أن كل أداة تنفرد عن الأخرى في بعض الخصائص، وسنأخذ الآن بعض هذه الأدوات كالتالي:

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


1. أداة النموذج Form:
أهم أدوات البرمجة، وهي واجهة البرنامج والتي نضع في داخلها باقي الأدوات الأخرى، وفي الغالب الأعم لابد أن يحتوي البرنامج على واجهة واحدة على الأقل:



وأهم الخصائص لهذه الأداة:

خاصية شكل الحد BoderStyle:
ويمكن من خلالها التحكم في حدود النموذج وشكله، وإليكم القيم المحددة لها وتأثير كل منها:
القيمة صفر -> لن يظهر الحد، ولا يمكن التحكم في الواجهة.
القيمة 1 -> يظهر الحد رفيعاً دون القدرة على التحكم في تكبير الواجهة أو تصغيرها.
القيمة 2 -> يظهر الحد تخينا مع القدرة على التحكم في تكبير الواجهة أو تصغيرها.
القيمة 3 -> يظهر الحد رفيعاً دون القدرة على التحكم في تكبير الواجهة او تصغيرها، ويستخدم في مربعات الحوار.
الفيمة 4 -> يظهر الحد رفيعاً دون القدرة على التحكم في تكبير الواجهة او تصغيرها، ويستخدم في مربعات الأدوات.
الفيمة 5 -> يظهر الحد تخيناً دون القدرة على التحكم في تكبير الواجهة او تصغيرها، ويستخدم في مربعات الأدوات.


خاصية أيقونات التحكم ControlBox:
وهي خاصية تتحكم في ظهور أيقونات التحكم في أعلى النموذج


خاصيتي التصغير والتكبير MinButton, MaxButton:
وتتحكم هاتين الخاصيتين في تفعيل خانتي التكبير والتصغير في أعلى النموذج.


خاصية الرمز Icon:
ويمكنك من خلاله تحديد أيقونه خاصة بالبرنامج.


خاصية موضع النموذج عند التشغيل StartUpPosition:
ويمكن من خلال هذه الخاصية تحديد موقع النموذج عند بدء تشغيل البرنامج.


خاصية حالة الواجهة WindowState:
وتحدد هذه الخاصية شكل الواجهة عند بدء تشغيل البرنامج وهل تظهر في في الحجم العادي Normal Size، أو تظهر في أكبر حجم Maximized، أو في أصغر حجم Minimized.
  رد مع اقتباس
قديم 10/12/2005   #4
شب و شيخ الشباب ملك الهكرز
عضو
-- مستشــــــــــار --
 
الصورة الرمزية لـ ملك الهكرز
ملك الهكرز is offline
 
نورنا ب:
Jul 2005
المطرح:
بالسيرفر
مشاركات:
2,180

افتراضي


2. أداة الزر CommandButton:
أداة معروفة، وتُستخدم بكثرة، وهي أداة الزر وأهم خصائصها:

خاصية الشكل Style:

ويمكن الاختيار ما بين قياسي Standerd وهو الشكل واللون الطبيعي للأزرار، أو رسومي Graphical وعند اختياره يمكنك التغيير في لون الزر كيفما تشاء.

خاصية الافتراضي Default:

وتحدد الزر الافتراضي الذي يقع عليه التركيز عندما لا يكون التركيز على أي أداة أخرى.

خاصية الخروج Cancel:

وعندما تكون قيمة هذه الخاصية True فهذا يعني أننا لو ضغطنا على زر الخروج Esc من لوحة المفاتيح فكأننا نقرنا على هذا الزر بالماوس.

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


3. أداة العنوان Lable:
وهي أداة تستخدم لكتابة النصوص على الشاشة ، وأهم خصائصها:

خاصية الحجم التلقائي AutoSize:
وتقوم بتحديد حجم الأداة على قدر الكلام الموجود بها فقط.

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


4. أداة مربع النص TextBox:
وهي أداة تسمح للمستخدم بكتابة نص بداخلها ، وأهم خصائصها:

خاصية القفل Locked:
وعندما تكون True فإنها لا تسمح للمستخدم بكتابة أي نصوص داخل هذه الأداة.


خاصية طول النص MaxLength:
ونحدد بواسطتها عدد الحروف التي يمكن كتابتها داخل الأداة.


خاصية تعدد الأسطر MultiLine:
وتحدد إمكانية تعدد الأسطر داخل الأداة من عدمه.


خاصية التشفير PasswordChar:
لجعل النص المدخل مشفراً مثل كلمات السر.


خاصية النص Text:
وتحتوي هذه الخاصية على النص الموجود داخل الأداة.

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


5. أداة الصورة Picture Control:
أداة يمكن من خلالها عرض صورة ، وأهم خصائصها:

خاصية الصورة Picture:
وفيها نختار ملف الصورة الذي نريد عرضه في الأداة.


[COLOR=sandybrown);] [/color]



المرحلة الثالثة: كتابة الكود.
آخر مراحل البرمجة وفيها يتم كتابة الكود الذي يتحكم في سير البرنامج ... ولكن أين نكتب هذا الكود؟ وهل له ترتيب معين؟

أولاً لابد أن نعرف أن البرمجة قديماً وتحت نظام التشغيل Dos كانت تقوم على مفهوم تنفيذ التعليمات أو الكود تسلسلياً، بحيث يتم تنفيذ السطر الأول، ثم السطر الثاني، ثم الثالث وهكذا حتى السطر الأخير بحيث لا يمكنك الانتقال في وسط البرنامج إلى برنامج آخر ثم الرجوع إلى برنامجك .. الخ.
ولكن تطورت البرمجة واختلف مفهومها تحت نظام التشغيل Windows وأصبحت تعتمد على البرمجة المسيرة بالأحداث (Event Driven Programming) أي البرمجة التي تسير وفق الأحداث المختلفة، فعندما يحدث حدث معين يتم تنفيذ كود معين، وعندما يحدث حدث آخر يتم تنفيذ كود آخر وهكذا، مثلاً إذا كان لدينا زر موجود على النافذة فإننا عندما نمر بمؤشر الماوس عليه فإن هذا حدث، وعندما نضغط عليه فإن هذا حدث آخر، وفي كل حدث من هذين الحدثين يمكننا وضع كود يتم تنفيذه عند وقوع هذا الحدث، وإليك مثال بسيط لتوضيح الفكرة: قم برسم أداة زر على النموذج، ثم انقر عليه مرتين لفتح نافذة الكود:



الآن ترى بأعلى اليسار اسم الأداة وبأعلى اليمين اسم الحدث وهو النقر Click، قم بتغيير الحدث إلى مرور الماوس وهو MouseMove، ثم قم بكتابة الكود التالي:
Command1.Top = Command1.Top + 200
اضغط F5 وانظر كيف يعمل البرنامج، كما ترى فإنك عندما تمر بالماوس على الزر Command1 يتم تنفيذ الكود، والذي يقوم بتحريك الزر إلى الأسفل بمقدار 200 نقطة ... لقد أصبح الأمر مسلياً الآن فكلما اقتربت بالماوس من الزر فإنه يهرب منك إلى الأسفل ...

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

حدث النقر Click ويقع عندما ينقر المستخدم على الأداة.
حدث النقر المزدوج DblClick ويقع عندما ينقر المستخدم على الأداة نقراً مزدوجاً.
حدث المرور بالماوس MouseMove ويقع عندما يمر المستخدم بمؤشر الماوس على الأداة.
زر الماوس إلى أسفل MouseDown ويقع عندما أثناء ضغط المستخدم على زر الماوس وقبل أن يحرره.
زر الماوس إلى أعلى MouseUp ويقع عندما يرفع المستخدم يده عن زر الماوس المضغوط.
حدث السحب DragOver ويقع عندما يسحب المستخدم أداة ويمر بها فوق أداة أخرى.
حدث الإلقاء DragDrop ويقع عندما يترك المستخدم الأداة المسحوبة فوق أداة أخرى.
حدث التركيز GotFocus ويقع عند حصول التركيز على الأداة.
حدث فقد التركيز LostFocus ويقع عند فقد التركيز من على الأداة.
حدث الضغط على لوحة المفاتيح KeyPress ويقع عندما يضغط المستخدم على أي حرف في لوحة المفاتيح.
المفناح لأسفل KeyDown ويقع أثناء ضغط المستخدم على أي حرف من لوحة المفاتيح وقبل أن يحرره.
المفتاح لأعلى KeyUp ويقع عندما يرفع المستخدم يده من على الحرف المضغوط.

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

افتراضي


تطوير البرنامج الأول


في الدرس السابق قمنا بعمل برنامج بسيط واليوم سنقوم بعمل نفس البرنامج لكن بشكل أكثر احترافاً:
الآن قم بوضع أداتي زر Tow CommandButttons وأداة عنوان Lable، وقم بتغيير الخصائص كالتالي:


الأداة Form1:

Caption --> تطوير البرنامج الأول
Hight --> 3500
Width --> 4500
StartUpPosition --> 2 CenterScreen


أداة الزر الأولى:

Name --> CmdWelcome
Caption --> &ترحيب
Hight --> 500
Width --> 1200
Left --> 3000
Top --> 2400


أداة الزر الثانية:

Name --> CmdExit
Caption --> &خروج
Hight --> 500
Width --> 1200
Left --> 200
Top --> 2400


أداة العنوان:

Name --> LblWelcome
Caption --> اجعله فارغاً
Hight --> 1000
Width --> 4000
Left --> 190
Top --> 350


سيصبح الشكل النهائي للنموذج هكذا:


والآن إلى المرحلة التالية(كتابة الكود):
في حدث النقر Click على زر الترحيب CmdWelcome اكتب الكود التالي:


CODE
LblWelcome.Alignment = 2
"LblWelcome.FontName = "Traditional Arabic
LblWelcome.FontSize = 40
LblWelcome.FontBold = True
LblWelcome.FontUnderline = True
LblWelcome.ForeColor = 1000
"مرحباً" = LblWelcome.Caption


في حدث النقر Click على زر الخروج CmdExit اكتب الكود التالي:

CODE
End


سيصبح الشكل النهائي للكود هكذا:


الآن اضغط F5 وانظر النتيجة


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



البرنامج الثاني


المرحلة الأولى: سنقوم بعمل برنامج يحتوي على أداتي مربع نص Tow TextBoxes، وأداة زر CommandButton، وأداة عنوان Lable، ويقوم المستخدم بكتابة اسمه الأول في مربع النص الأول، واسمه الأخير في مربع النص الثاني، وعندما يضغط المستخدم على الزر يقوم البرنامج بإظهار الاسم كاملاً في أداة العنوان.


المرحلة الثانية: قم برسم الأدوات المذكورة، واضبط الخصائص كما يلي:


الأداة Form1:

Caption --> البرنامج الثاني
Hight --> 3500
Width --> 4500
StartUpPosition --> 2 CenterScreen


أداة مربع النص الأولى:

Name --> TxtFirstName
Text --> أدخل الاسم الأول
Hight --> 375
Width --> 3735
Left --> 360
Top --> 120


أداة مربع النص الثانية:

Name --> TxtLastName
Text --> أدخل الاسم الثاني
Hight --> 375
Width --> 3735
Left --> 360
Top --> 600


أداة الزر:

Name --> CmdFullName
Caption --> الاسم كاملاً
Hight --> 500
Width --> 1200
Left --> 1590
Top --> 1200


أداة العنوان:

Name --> LblFullName
Caption --> اجعله فارغاً
Hight --> 1000
Width --> 4000
Left --> 190
Top --> 1900


سيصبح الشكل النهائي للنموذج هكذا:



المرحلة الثالثة: في حدث النقر Click على زر الاسم كاملاً CmdFullName اكتب الكود التالي:

CODE
LblFullName.Alignment = 2
"LblFullName.FontName = "Traditional Arabic
LblFullName.FontSize = 12
LblFullName.Caption = TxtFirstName.Text + " " + TxtLastName.Text


والشكل النهائي للكود هكذا:


شرح الكود: كما ترى الكود بسيط جداً حيث في السطر الأول نقوم بتغيير خاصية المحاذاة إلى توسيط، ونغير خاصية نوع الخط إلى Traditional، ونغير حجم الخط إلى 12، وفي السطر الأخير نجعل الخاصية Caption (وهي تعني النص المعروض) تساوي النص الموجود في مربع النص الأول + مسافة + النص الموجود في مربع النص الثاني.

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

افتراضي


البرنامج الثالث


المرحلة الأولى: سنقوم بعمل برنامج يحتوي على أداتي مربع نص Tow TextBoxes، وأداة زر CommandButton، وأداة عنوان Lable، وعندما يضغط المستخدم على الزر يقوم البرنامج بجمع العدد الموجود في مربع النص الأول مع العدد الموجود في مربع النص الثاني ويظهر الناتج في أداة العنوان.


المرحلة الثانية: قم برسم الأدوات المذكورة، واضبط الخصائص كما يلي:


الأداة Form1:

Caption --> البرنامج الثالث
Hight --> 3500
Width --> 4500
StartUpPosition --> 2 CenterScreen


أداة مربع النص الأولى:

Name --> TxtFirstNum
Text --> اجعله فارغاً
Hight --> 375
Width --> 495
Left --> 1943
Top --> 120


أداة مربع النص الثانية:

Name --> TxtSecondNum
Text --> اجعله فارغاً
Hight --> 375
Width --> 495
Left --> 1943
Top --> 600


أداة الزر:

Name --> CmdNum
Caption --> المجموع
Hight --> 500
Width --> 1200
Left --> 1590
Top --> 1200


أداة العنوان:

Name --> LblNum
Caption --> اجعله فارغاً
Hight --> 1000
Width --> 4000
Left --> 190
Top --> 1900


سيصبح الشكل النهائي للنموذج هكذا:



المرحلة الثالثة: في حدث النقر Click على زر المجموع CmdNum اكتب الكود التالي:

CODE
LblNum.Alignment = 2
"LblNum.FontName = "Traditional Arabic
LblNum.FontSize = 12
)LblNum.Caption = Val(TxtFirstNum.Text) + Val(TxtSecondNum.Text


والشكل النهائي للكود هكذا:


شرح الكود: كما ترى فإن هذا الكود شبيه جداً بالكود الذي كتبناه في البرنامج السابق إلا أننا أضفنا الكلمة Val والتي تعني (قيمة)، أي أننا نريد أن نجمع ما في المربع الأول مع ما في المربع الثاني كقيمة عددية، ولو لم نكتب هذه الكلمة فإن البرنامج سيجمعها كقيمة نصية وليس عددية...
مثلاً 19+3 عندما نجمعهم كقيمة نصية فإن الناتج سيكون 311 .. ولكن عندما نجمعهم كقيمة عددية فإن الناتج سيكون 14 وهذا ما نريده ..

اضغط الآن F5 وتأكد من النتيجة.


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



البرنامج الرابع


المرحلة الأولى: سنقوم بعمل برنامج يحتوي على أداة مربع صورة PictureBox تقع في وسط النموذج تماماً، وفي جوانبها الأربعة أربعة أدوات زر four CommandButtons، وعندما يضغط المستخدم على الزر العلوي تتحرك الصور إلى أعلى، وعندما يضغط على الزر الأيمن تتحرك الصورة إلى اليمين وهكذا ... أيضاً عندما يمر المستخدم بالماوس على الصورة يتم إحاطتها بـ خط أسود خارجي، وعندما يمر المستخدم بالماوس خارج الصورة أي على النموذج يختفي هذا الخط الأسود.


المرحلة الثانية: قم برسم الأدوات المذكورة، واضبط الخصائص كما يلي:


الأداة Form1:

Caption --> البرنامج الرابع
Hight --> 6000
Width --> 6000
StartUpPosition --> 2 CenterScreen


أداة مربع الصورة:

Name --> PicTest
Picture --> ضع أي صورة تعجبك
BoderStyle --> 0 None
Hight --> 855
Width --> 855
Left --> 2513
Top --> 2370


أداة الزر الأولى:

Name --> CmdUp
Caption --> Up
Hight --> 500
Width --> 615
Left --> 2633
Top --> 240


أداة الزر الثانية:

Name --> CmdDown
Caption --> Down
Hight --> 500
Width --> 615
Left --> 2633
Top --> 4920


أداة الزر الثالثة:

Name --> CmdLeft
Caption --> Left
Hight --> 500
Width --> 615
Left --> 360
Top --> 2610


أداة الزر الرابعة:

Name --> CmdRight
Caption --> Right
Hight --> 500
Width --> 615
Left --> 4920
Top --> 2610


سيصبح الشكل النهائي للنموذج هكذا:



المرحلة الثالثة:
في حدث النقر Click على زر أعلى CmdUp اكتب الكود التالي:

CODE
PicTest.Top = PicTest.Top - 100


وفي حدث النقر Click على زر أسفل CmdDown اكتب الكود التالي:

CODE
PicTest.Top = PicTest.Top + 100


وفي حدث النقر Click على زر يمين CmdRight اكتب الكود التالي:

CODE
PicTest.Left = PicTest.Left + 100


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

CODE
PicTest.Left = PicTest.Left - 100


وفي حدث المرور بالماوس MouseMove على الصورة اكتب الكود التالي:

CODE
PicTest.BorderStyle = 1


وفي حدث المرور بالماوس MouseMove على النموذج اكتب الكود التالي:

CODE
PicTest.BorderStyle = 0


والشكل النهائي للكود هكذا:


اضغط الآن F5 وتأكد من النتيجة.


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


  رد مع اقتباس
قديم 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- ثابت على مستوى الحدث أو الإجراء:
ويتم الإعلان عنه داخل الحدث أو الإجراء، ويسري مداه داخل الحدث أو الإجراء المعلن عنه فيه فقط، فلو أعلنا عن ثابت ما في حدث معين فإنه لا يُصبح ذو أهمية في أي حدث آخر وصيغة الإعلان لا تختلف عن النوع السابق بشيء، ولكن الذي يختلف فقط هو مكان الإعلان، ففي النوع السابق يتم الإعلان في قسم التصريحات العامة، بينما النوع الأخير يتم الإعلان عنه داخل الحدث أو الإجراء نفسه ..
  رد مع اقتباس
قديم 11/12/2005   #8
شب و شيخ الشباب ملك الهكرز
عضو
-- مستشــــــــــار --
 
الصورة الرمزية لـ ملك الهكرز
ملك الهكرز is offline
 
نورنا ب:
Jul 2005
المطرح:
بالسيرفر
مشاركات:
2,180

افتراضي


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

النموذج الأول Form1 سيكون كالشكل التالي:



وسنقوم بتغيير أسماء الأدوات كالتالي:

1 - lblcolor
2 - cmdgreen
3 - cmdred
4 - cmdblue
5 - lblabout
6 - cmdauthor
7 - cmdcompany
8 - cmdversion
9 - cmdform2

وربما تجد أننا اخترنا أسماءً غريبة للأدوات، فما السبب لذلك ؟؟
من المهم جداً تغيير أسماء الأدوات التي نقوم بإدراجها في النموذج من الأسماء الافتراضية ( Command1 - command2 ... الخ ) حيث أن هذه الإسماء ستصبح مصدر متاعب عند تشعب البرنامج وكثرة الأدوات فيه، فلن تعرف هذا الاسم يخص أي أدة و...
ويُفضل معظم المبرمجين حجز الثلاثة حروف من اسم الأداة للدلالة على نوعها، مثلا أداة الزر فنحن نرمز لها بـ cmd وأداة العنوان بـ lbl وأداة مربع النص بـ txt وهكذا .. ثم بعد أن نكتب هذا الرمز نكمل الاسم بما يدل على وظيفة الأداة فمثلاً الزر الذي يغير لون الخلفية إلى الأخضر من الممكن أن نسميه cmdgreen وهكذا ...

لنذهب بعد ذلك ونرى النموذج الثاني Form2 والذي سيظهر هكذا:



ويمكننا إدراج نموذج جديد من خلال العنصر Add Form من القائمة Project، وأسماء الأدوات كالتالي:
1 - lbltime
2 - lbldate
3 - cmdform1
4 - cmdmin
5 - cmdinf
6 - cmdclose

سنقوم أيضاً بإنشاء ملف برمجة منفصل Module، من خلال العنصر Add Module من القائمة Project ... وبعد إنشائه سنكتب الأوامر التالية بداخله:

كود

"Public Const version = "1.1.0
Public Const company = "شركة الإبداع"
Public Const author = "عبد الله فتحي"


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

والآن لنعد مرة أخرى إلى النموذج الأول ونقوم بكتابة الكود التالي في قسم التصريحات العامة أعلى نافذة الكود Genral_Declarations:

كود

Const green = &HC0FFC0
Const red = &HC0C0FF
Const blue = &HFFC0C0


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

بعد ذلك ستكون باقي الأكواد في هذا النموذج كالتالي:

- في حدث النقر على الزر "أخضر":

كود

Form1.BackColor = green


- في حدث النقر على الزر "أحمر":

كود

Form1.BackColor = red


- في حدث النقر على الزر "أزرق":

كود

Form1.BackColor = blue


- في حدث النقر على الزر "مصمم البرنامج":

كود

cmdauthor.Caption = author


- في حدث النقر على الزر "من نحن؟؟":

كود

cmdcompany.Caption = company


- في حدث النقر على الزر "رقم الإصدارة":

كود

cmdversion.Caption = version


- في حدث النقر على الزر "<<<":

كود

Form1.Hide
Form2.Show


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

إلى النموذج الثاني:

- في حدث النقر على الزر "<<<":

كود

Form2.Hide
Form1.Show

وهو عكس الكود الموجود في النموذج السابق وأعتقد أن السبب معروف.

- في حدث النقر على الزر "_":

كود

Form2.WindowState = 1

وهو تغيير الخاصية WindowState إلى القيمة (1) وذلك لتصغير النموذج.

- في حدث النقر على الزر "!":

كود

lblTime.Caption = Time
lbldate.Caption = Date
Form2.Caption = company

في السطر الأول والثاني استخدمنا دالتين جديدتين وهما Time و Date وهما يحتويان على الوقت والتاريخ ويمكن استخدامهما في أي جزء من البرنامج، على سبيل المثال لو كتبنا Print Time فإن النتيجة الطبيعية لهذا الأمر هو طباعة الوقت على النموذج ..
وفي السطر الثالث استخدمنا الثابت الذي أعلنا عنه في ملف الـ Module وكما ترى فإننا قد استخدمناه مرتين، المرة الأولى عند الضغط على الزر "من نحن؟؟" في النموذج الأول، والمرة الثانية الآن ...
وذلك بخلاف الثوابت الخاصة بالألوان فليس من الممكن أن نستخدمها في هذا النموذج لأننا أعلنا عنها كثوابت على مستوى النموذج الأول فقط، وبالتالي لا يمكن استخدامها هنا ... ويمكنك التجربة ومشاهدة النتيجة ...

- في حدث النقر على الزر "×":

كود

end

طبعاً لإنهاء البرنامج ..

=--------------------------------------------------------------------------------------------------=
مــــــــــــــــــــــــ لك الهكـــــــــــــــــــــ ـرز
  رد مع اقتباس
قديم 21/09/2006   #9
صبيّة و ست الصبايا ahmad010
مسجّل
لسا يا دوب
 
الصورة الرمزية لـ ahmad010
ahmad010 is offline
 
نورنا ب:
Sep 2006
مشاركات:
1

Smile


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

ولك تحياتي...
  رد مع اقتباس
إضافة موضوع جديد  إضافة رد



ضوابط المشاركة
لافيك تكتب موضوع جديد
لافيك تكتب مشاركات
لافيك تضيف مرفقات
لا فيك تعدل مشاركاتك

وسوم vB : حرك
شيفرة [IMG] : حرك
شيفرة HTML : بليد
طير و علّي


الساعة بإيدك هلق يا سيدي 22:09 (بحسب عمك غرينتش الكبير +3)


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ما بخفيك.. في قسم لا بأس به من الحقوق محفوظة، بس كمان من شان الحق والباطل في جزء مالنا علاقة فيه ولا محفوظ ولا من يحزنون
Page generated in 0.33053 seconds with 12 queries