دروس من موقع عرب سوفت2000 لتعليم الفيجوال

    • دروس من موقع عرب سوفت2000 لتعليم الفيجوال

      هذي هي دروس من موقع عرب سوفت2000 لتعليم الفيجوال عنوان الموقع absoft2000.com والأن معا الردوس
      --------------------------------------------------------------------------------------------------------------------------------

      الدرس الأول


      محتويات الدرس الأول :

      v تشغيل "فيجول بيسيك"
      v نوافذ "فيجول بيسيك"
      v برنامج تجريبي
      v الخروج من "فيجول بيسيك"

      تشغيل ‘ فيجول بيسيك ’ :
      هناك عدة طرق لبدء "فيجول بيسيك" . فيمكن أن تبدأ فيجول بيسيك
      من قائمة "ابدا" أو start كما تفعل مع معظم برامج ويندوز

      ثم برامج أو programs ثم مجموعة visual basic 6.0



      كما ترى فإن "فيجول بيسيك" له عدة نوافذ :

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

      النافذة الرئيسية :

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


      .شريط العنوان :

      ستلاحظ وجود العنوانMicrosoft Visual Basic[design]

      والكلمة التي بين قوسين تعكس الطور الذي يعمل بة "فيجول بيسيك" حاليا ، وهي [design] أثناء تصميم البرنامج أو [run] أثناء تشغيله أو [break] أثناء توقيف البرنامج مؤقتا لفحصه .

      2.شريط القوائم :


      شريط القوائم هو الشريط الأبيض الذي يظهر أسفل شريط العنوان في نافذة "فيجول بيسيك" الرئيسية :

      ويحتوي هذا الشريط على القوائم الرئيسية في "فيجول بيسيك" وتحتوي كل قائمة على مجموعة من الأوامر المتعلقة بموضوع معين

      فمثلا : قائمة File تحتوي على الأوامر الخاصة بالمشروعات والملفات مثل حفظ أو التحميل وإضافة ملف أو حذفه.

      وقائمة Edit تحتوي على أوامر خاصة بالتحرير مثل القص والصق والنسخ

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



      3.شريط الأدوات :


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

      فمثلا بدل ما تبحث عن امر فتح ملف من قائمة File

      يمكنك ان تنقر على الرمز مباشرة .

      الرمز ومعناه : ) من اليمين إلى اليسار(

      v مشروع جديد

      v نافذه جديدة

      v إظهار نافذة تصميم القوائم

      v فتح مشروع جديد

      v حفظ المشروع الحالي

      v تشغيل البرنامج الحالي

      v إيقاف البرنامج بصورة مؤقته

      v إنهاء البرنامج الحالي

      v إظهار نافذة الخصائص

      v وضع أو حذف نقطة توقف

      v مراقبة متغير

      v عرض الاستدعاءات

      v تنفيذ البرنامج خطوة فخطوة

      v تنفيذ البرنامج إجراء فإجراء







      نافذة الأدوات :

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

      نافذة المشروع :

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

      والمهم في هذه النقطة :

      عندما تبدأ في تصميم برنامج جديد ، فإن هناك ثلاثه أنواع من الملفات يمكن أن تستخدمها : النوع الأول هو النوافذ Forms التي ستظهر للمستخدم أثناء تشغيل البرنامج ، وهذه يحفظها "فيجول بيسيك"

      في ملفات تنتهي بالامتداد .frm والنوع الثاني هو ملفات البرمجة Code Modules وهذه تنتهي بالامتداد .bas وتستخدم للإعلان عن المتغيرات Varibles ووضع الإجراءات العامة General Procedures والنوع الثالث هو الأدوات الخاصة ، وهي تظهر في نافذة الأدوات مثل بقية الأدوات الأخرى .وتنتهي بالامتداد *.ocx

      وتوجد في دليل \Windows\System

      وعندما تحفظ البرنامج ، فإن "فيجول بيسيك" يضع جميع المعلومات الخاصة بهذا البرنامج في "مشروع".هذا الشروع عبارة عن ملف ينتهي بالامتداد *.mak يضع فيه "فيجول بيسيك" عدد وأسماء النوافذ التي تستخدمها وموقع كل نافذة على الشاشة ومواقع نوافذ "فيجول بيسيك"

      وعندما ترغب في حفظ المشروع الحالي انقر على الرمز حفظ من شريط الأدوات أو اختر أمر save project من قائمة File





      نافذة الخصائص :

      تستخدم نافذة الخصائص properties window لاستعراض وتغيير خصائص النافذة أو الأداة النشطة :

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

      نافذة البرمجة :

      تظهر نافذة البرمجة Code Window عند النقر المزدوج على نافذة البرنامج أو على أحد الأدوات الموجودة عليها أو عند النقر على زر View Code من نافذة الشروع وتستخدم هذه النافذة في إضافة التعليمات Code التي ترغب في تنفيذها .

      نافذة اكتشاف الأخطاء :

      لاتظهر نافذة اكتشاف الأخطاء debug window إلا عند تشغيل البرنامج . وهي تلعب دوراً حيوياً في مرحلة اكتشاف الأخطاء التي توجد في برنامجك .

      نافذة البرنامج :

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

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



      و الآن وبعد أن تعرفنا على أجزاء "فيجول بيسيك" المختلفة . سنقوم بعمل برنامج صغير وهو عبارة عن ساعة بسيطة تظهر في أسفل الشاشة

      لعمل البرنامج اتبع الخطوات التالية :

      1. شغل برنامج "فيجول بيسيك"

      2. انقر فوق نافذة البرنامج Form1 لتنشيطها .

      3. انتقل إلى نافذة الخصائص واستخدم شريط التمرير الرأسي الموجود فيها حتى تصل إلى نهاية النافذة . ستجد أن آخر خاصية فيها هي windowstate وهذه الخاصية تتحكم في شكل النافذة عندما تبدأ . ستجد أن الرقم الموجود أمام الخاصية هو normal-0

      ومعناه أن تظهر النافذة في وضعها المعتاد انقر نقرا مزدوجا حتى تتحول إلى
      1-Minimized هذا الرقم يعني أن تبدأ النافذة مصغرة كرمز في أسفل الشاشة .

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

      5. انتقل إلى الدليل \vb\icons\misc ثم اختر الرمز clock03

      6. انتقل إلى نافذة الأدوات وانقر أداة المؤقت نقرا مزدوجاً تستجد أن نسخة من أداة المؤقت قد انتقلت إلى وسط نافذة البرنامج Form1 وإنها محاطة بمربعات صغيرة .

      7. انتقل إلى نافذة الخصائص وانقر خاصية Interval ستجد أن القيمة الموجودة أمام هذه الخاصية هي 0 أدخل الرقم 1000

      8. انتقل إلى نافذة البرنامج وانقر على أداة المؤقت الموجودة عليها نقرا مزدوجاً . ستظهر لك نافذة البرمجة code window :

      اكتب السطر التالي :

      Form1.caption = format(now, "long time")

      بين السطرين الموجودين في النافذة .

      9. اضغط الرمز من شريط الأوامر .

      سيظهر لك "فيجول بيسيك" نافذة يسألك عن اسم الملف الذي سيحفظ فيه نافذة البرنامج اكتب اسم الملف Myclock في خانة file name ثم اضغط مفتاح الإدخال أو انقر زر ok

      10.سيظهر مربع حوار آخر يسألك هذه المرة عن اسم المشروع اكتب أيضا Myclock ثم اضغط مفتاح الإدخال . بهذا قد تكون قد حفظت المشروع

      11. ولتنفيذ البرنامج انقر على الرمز او اختر الامر start من قائمة Run أو اضغط مفتاح F5 .

      11. انقر الرمز أو اختر أمر End من قائمة Run لإنهاء البرنامج .



      عمل ملف قابل للتنفيذ :

      بعد أن تنتهي من عمل برنامج ما ، يمكنك تحويله إلى ملف للتنفيذ Executable File بحيث تشغله من ويندوز مباشرة دون الحاجة إلى وجود "فيجول بيسيك" .
      دعونا نقوم بعمل ملف قابل للتنفيذ لبرنامج الساعة :
      1. اختر الأمر Make EXE File من قائمة File . سيعرض عليك "فيجول بيسيك" مربع حوار

      2. يسألك "فيجول بيسيك" عن اسم الملف القابل للتنفيذ اكتب اسم الملف myclock في خانة File Name ثم اضغط مفتاح الادخال ، قم بتجربة البرنامج من مستكشف ويندوز

      الخروج من "فيجول بيسيك" :

      للخروج من "فيجول بيسيك" اختر الأمر Exit من قائمة File .اذا كنت قد اجريت أي تعديل على المشروع الحالي أو على أي نافذة ، سيعرض "فيجول بيسيك" رسالة يسألك اذا كنت ترغب في حفظ التعديلات التي أجريتها على النافذة أو المشروع قبل الخروج أم لا . اختر Yes لحفظ التعديلات أو No للخروج دون حفظ التعديلات أو Cancel لإلغاء الأمر والبقاء في "فيجول بيسيك" .
    • الدرس الثاني

      محتويات الدرس الثاني :

      v تعرّف على بيئة ويندوز

      v استخدم الأدوات

      v مراحل كتابة البرنامج

      v أدوات فيجوال بيسك

      v ما هي الأدوات ؟

      v وضع الأدوات على النافذة

      v طرق تحديد الأدوات





      بيئة ويندوز متعددة المهام :

      يمكن لـ ويندوز أن تشغل أكثر من تطبيق في وقت واحد ، وهو مايعرف بتعدد المهام Multitasking . تقوم "ويندوز" بتوزيع إمكانيات الجهاز بين التطبيقات المختلفة التي تعمل في نفس الوقت مما يؤدي إلى أن تعمل هذه التطبيقات جنبا إلى جنب . ولأنه من الممكن أن يعمل أكثر من تطبيق على نفس الجهاز في وقت واحد فإن هذه التطبيقات تتقاسم فيما بينها الإمكانات المتاحة بالجهاز مثل شاشة الجهاز والذاكرة ، وأهم من ذلك تتقاسم وقت المعالج المركزي CPU .

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



      استخدام الأدوات :

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



      مراحل كتابة البرنامج :

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

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

      1. تصميم واجهة البرنامج Drawing the interface

      بعد أن تحدد فكرة البرنامج ، تبدأ عملية تصميمه . ويجب أن تجيب على عدة أسئلة : كم نافذة يحتاج البرنامج ؟ ما هي الأدوات التي تحتاجها ؟ هل تحتاج إلى قائمة منسدلة ؟ وهكذا ..

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

      2. ضبط الخصائص Setting Properties

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

      3. كتابة التعليمات Writing Code

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

      caption = format (now, "long time ")

      وهذا الأمر يقوم "فيجول بيسيك" بتنفيذه كل ثانية بسبب أداة المؤقت على نافذة البرنامج ، وهذا الأمر بدوره يغّير عنوان النافذة إلى الوقت الحالي .

      وبعد التعرف على بيئة ويندوز واستخدام الأدوات ومراحل كتابة البرنامج نتعرف على



      أدوات فيجوال بيسك


      v ما هي الأدوات ؟

      v وضع الأدوات على النافذة

      v طرق تحديد الأدوات



      ما هي الأدوات ؟

      عبارة عن أجزاء برامج "جاهزة للاستخدام". وهي توفر عليك الوقت والجهد . الذي تكفل به مبرمجين عنك ووضعوا أدواتهم مشاعا للمبرمجين .



      - استخدامها

      * اسمها

      - عرض الصور أو كوعاء للأدوات الأخرى

      * خانة الصورة

      -عرض النصوص الثابتة التي لا يستطيع المستخدم تعديلها كالعنواين .

      * العنوان

      -طلب معلومة من المستخدم أو عرض النصوص التي يمكن للمستخدم أن يعدلها .

      *خانة النص

      - وضع الأدوات الأخرى في مجموعة داخله .

      * الإطار

      -ينقر عليه المستخدم لتنفيذ أمر معين

      * زر الأمر

      -سؤال المستخدم هل يريد فعل شئ محدد أم لا

      *خانة الاختيار

      -إعطاء المستخدم الحرية في الاختيار من قائمة أو إدخال اختياره كتابة .

      * الخانة المركبة

      -عرض قائمة مرتبة أو غير مرتبة ، من عمود واحد أو عدة أعمدة .

      *خانة القائمة

      -استعراض محتويات قائمة أو نافذة ، أو للحصول على معلومة من المستخدم

      *شريط تمرير أفقي

      -نفس استخدام شريط التمرير الافقي

      *شريط تمرير رأسي

      -تنفيذ أوامر كل فترة زمنية محددة .

      *المؤقت

      -عرض قائمة بالأقراص الموجودة بالجهاز .

      * قائمة الأقراص

      -عرض قائمة بالأدلة الموجودة في القرص الحالي .

      * قائمة الأدلة

      -عرض قائمة بالملفات الموجودة في القرص الحالي .

      * قائمة الملفات

      -وضع أشكال هندسية مثل الدوائر والمربعات فوق نافذة البرنامج .

      * أداة الأشكال

      -رسم الخطوط فوق نافذة البرنامج .

      *أداة الخطوط

      -عرض الصور .

      * أداة الرسم

      -الدخول على ملفات قواعد البيانات .

      * أداة قاعدة البيانات

      -عرض البيانات في جداول .

      * أداة الشبكة

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

      * أداة ربط الكائنات وتضمينها

      -استخدام مربعات الحوار الشائعة الموجودة في ويندوز من داخل برنامجك .

      * أداة مربعات الحوار الشائعة



      وضع الأدوات على النافذة
      هناك طريقتان لوضع الأدوات على النافذة :

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



      طريقة الرسم :

      v انقر الأداة التي تريد استخدامها في نافذة الأدوات نقرة واحدة فقط .

      v حرك المشيرة إلى نافذة البرنامج ، ستلاحظ أن شكل المشيرة تغير وهذا معناه أن "فيجول بيسيك" في طور "رسم" .

      v ضع المشيرة في المكان الذي تريد وضع الأداة فيه ثم اضغط زر الفأرة الأيسر واحتفظ به مضغوطا ثم اسحب .

      v حرك المستطيل إلى أن ترضى عن حجمه ثم حرر زر الفأرة .


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



      تحديد أكثر من أداة :

      × انقر على الاداة الأولى ثم اضغط مفتاح العالي Shift واحتفظ به مضغوطا ثم انقر بقية الأدوات . ستجد أن "فيجول بيسيك" يحدد كل الأدوات التي تنقر عليها .

      تغيير موقع الأدوات

      قم بالنقر على الاداة التي تريد ان تغير موقعها ثم اسحبها عن طريق الفارة

      وطريقة أخرى وهي عن طريق خصائصها من خلال نافذة خصائص

      خاصية Lift وخاصية Top

      قص الأدوات : ctrl-x

      لصق الأدوات : ctrl-v

      نسخ الأدوات : ctrl-c

      حذف الأدوات : عن طريق مفتاح Delete من لوحة المفاتيح .
    • الدرس الثالث

      محتويات الدرس الثالث

      v معنى الخصائص

      v ضبط الخصائص

      v الخصائص المشتركة



      معنى الخصائص

      لكل أداة من أدوات "فيجول بيسيك" بما في ذلك نافذة البرنامج كما ذكرنا في المحاضرات السابقة

      ويوجد عدة خصائص لنافذة البرنامج مثل خاصية الخط FontName وهي تحدد اسم الخط المستخدم

      وخاصية BackColor وهي تحدد لون الخلفية للنافذة أو الأداة

      ويوجد خصائص كثيرة في كل أداة من الأدوات .



      وعندما تضع أداة على نافذة البرنامج ، فإن "فيجول بيسيك" يضع قيماً افتراضية لخصائصها . فإذا لم تعجبك هذه القيم الافتراضية ، فإنه يمكنك أن تغيرها وتضع لها قيمـاً جديدة .

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



      الرجوع إلى القائمة العليا



      ضبط الخصائص
      هناك طريقتان لضبط الخصائص :
      1. أثناء تصميم البرنامج

      2. واثناء تشغيله


      ضبط الخصائص أثناء تصميم البرنامج
      كما ذكرنا في المحاضرات السابقة يتم ضبط الخصائص أثناء تصميم البرنامج باستخدام نافذة الخصائص propertie window وهناك ثلاثة خطوات تمر بها عملية تغيير الخصائص ، هي :

      1. تحديد الأداة التي تريد ضبط خصائصها (يمكنك تحديد أكثر من أداة )

      2. تحديد الخاصية التي تريد تغييرها

      3. إدخال القيمة الجديدة

      إذا لم تكن نافذة الخصائص ظاهرة على الشاشة ، اضغط مفتاح F4 لإظهارها :



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

      1. أن تنتقل إلى نافذة البرنامج FORM1 ثم تنقر فوق الأداة المطلوبة

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

      خانة إدخال القيمة

      تستخدم هذه الخانة لإدخال القيمة الجديدة للخاصية التي حددتها في قائمة الخصائص .

      لاحظ أن الزر الموجود في يمين خانة إدخال له ثلاثة أشكال وهي :

      الشكل الأول

      معناه انك لن تضطر إلى كتابة القيمة بنفسك وإنما يمكنك اختيارها من قائمة سيعرضها لك "فيجول بيسيك" عند النقر على السهم مثل خاصية الخط

      الشكل الثاني
      معناه أنه يمكنك أن تختار قيمة الخاصية الحالية من مربع حوار فمثلا عند تغيير خاصية BACKCOLOR سيظهر الزر في يمين خانة إدخال القيمة انقر عليه سيظهر مربع حوار يحتوي على الألوان الموجودة في "ويندوز" . انقر فوق لون لتختاره .

      الشكل الثالث :

      وهو مثل الشكل الأول ولكنة خافت ، وهذا معناه أن "فيجول بيسيك" ليس لديه اختيارات للخاصية الحالية وأنك يجب أن تدخل قيمتها بالكتابة . مثل خاصية Caption التي تحدد خاصية العنوان أو Left التي تحدد موقع الأداة أفقيا أو Top التي تحدد موقع الأداة رأسيـاً . فـ "فيجول بيسيك" ليس لديه خيارات لهذه الخصائص وإنما يجب أن تدخلها بنفسك .





      ضبط الخصائص أثناء تشغيل البرنامج

      هناك بعض الخصائص التي لا تكون متاحة إلا عند تشغيل البرنامج ، مثل خاصية Drive التي تحدد القرص الحالي في أداة الأقراص أو خاصية path التي تحدد المسار لأداة الأدلة

      وحتى ولو كانت الخاصية متوفرة أثناء تصميم البرنامج ، فمن الممكن أن تحتاج إلى تغيرها أثناء تشغيل البرنامج . فمثلا خاصية backcolor التي تحدد لون الخلفية متوفرة أثناء تصميم البرنامج ولكن من الممكن أن تحتاج إلى تغييرها أثناء تشغيل البرنامج .

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

      فكيف إذا نغير الخصائص أثناء تشغيل البرنامج ؟

      ولتغيير الخصائص أثناء عمل البرنامج اتبع الصيغة التالية :

      القيمة الجديدة = اسم الخاصية . الأداة

      كود المصدر

      1. cotrolName.propertyName = New Value

      وهذا يعني تكتب اسم الاداة التي ترغب في تغيير خصائصها ثم تضع بعدها نقطة (.) ثم اسم الخاصية التي ترغب في تغيير قيمتها ثم علامة يساوي (=) ثم القيمة الجديدة للخاصية .

      وتجربة على ذلك .



      v انقر زر أوامر من نافذة الأدوات واوضعه في نافذة البرنامج

      v انقر زر اوامر نقرا مزدوجا

      v سيظهر لك نافذة البرمجة الخاصة بهذا الزر :

      ادخل الاسطر التالية :

      كود المصدر

      1. Sub command1_click ( )
      2. form1.backcolor = 0
      3. form1.caption = “this is a test”
      4. command1.width = 2500
      5. command1.caption = “ push me please “
      6. command1.top = 10
      7. End sub
      عرض الكل


      وبعد ذلك اضغط F5 لتشغيل البرنامج

      الخصائص المشتركة

      خاصية العنوان )تستخدم هذه الخاصية عندما تريد تغير عنوان زر الأمر من command1 إلى خروج مثلاً(

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

      متوفرة أثناء : التصميم والتنفيذ

      هذه الخاصية متوفرة لجميع الأدوات

      مثال :

      "مسابقة الشاطر يربح"form1.caption =



      خاصية الاســم

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

      متوفرة أثناء : التصميم فـقط.

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

      عندما تضع اداة معينة على نافذة البرمجة يقوم "فيجول بيسيك" بتسميتها بطريقة اتوماتيكية بإضافة الاسم ثم رقم مثل form1 أو command1 أو label1 كل هذه اسماء يقوم "فيجول بيسيك" بوضعها



      خصائص اللون

      اسم الخاصية : forecolor للون الكتابة

      backcolor للون الخلفية

      متوفرة أثناء : التصميم والتنفيذ

      تتحكم هاتان الخاصيتان في لون الكتابة ولون الخلفية فمثلا الأمر :

      كود المصدر

      1. label1.forecolor = qbcolor (1)


      وهذا يعني قم يا"فيجول بيسيك" بتغيير لون الكتابة لأداة العنوان إلى اللون الأزرق



      خصائص الخط المستخدم في الكتابة

      اسم الخاصية : fontbold , fontitalic ,fontname ,fontsize ,fontstrike ,fontunderline

      متوفرة أثناء : التصميم والتنفيذ

      تتحكم هذه الخصائص في اسم وصفات الخط المستخدم في الكتابة

      اسم الخاصية : تتحكم في …
      Fontname: اختيار اسم الخط
      Fontbold: سمك الخط
      Fontitalic: ميل الخط مثل : خط مائل
      Fontsize: حجم الخط
      Fontstrikethru: خط وسط الخط
      fontunderline: خط تحت الخط مثل : "فيجول بيسيك"

      خصائص الحجم والموقع على النافذة

      اسم الخاصية : Top,Lift,Height,Width

      متوفرة أثناء : التصميم والتنفيذ

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

      اسم الخاصية: تتحكم في …
      Top: الطرف العلوي للأداة
      Left: الطرف الأيسر للأداة
      Height: أرتفاع الأداة
      Width: عرض الأداة

      مثال :

      كود المصدر

      1. form1.top = 0
      2. form1.left = 0

      سيحركان النافذة إلى أقصى اليسار العلوي من الشاشة . كما إن الأمر :

      كود المصدر

      1. command1.width = command1.width *2


      سيجعل عرض الأداة command1 يتضاعف
      خاصية شكل المشيرة

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

      متوفرة أثناء : التصميم والتنفيذ

      يتيح لك "فيجول بيسيك" تغيير شكل المشيرة تبعاً للأداة التي تمر من فوقها . وهناك ثلاثة عشر شكلاً للمشيرة يمكن أن تختار بينها الأمر :

      كود المصدر

      1. command1.mousepointer = 10


      وهذا يغير شكل المشيرة إلى سهم لأعلى كلما مرت فوق الزر command1

      أما الامر التالي يحول المشيرة إلى علامة الانتظار (الساعة الرملية )

      كود المصدر

      1. command1.mousepointer = 11



      وأما اصدار الامر التالي يعيد شكل المشيرة إلى الوضع الطبيعي

      كود المصدر

      1. command1.mousepointer = 0



      خاصية الظهور

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

      متوفرة أثناء : التصميم والتنفيذ

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

      كود المصدر

      1. text1.visible = false


      يؤدي إلى اختفاء خانة النص text1 بينما الأمر :

      كود المصدر

      1. text1.visible = true


      يعيد إظهارها .

      لا يظهر تأثير هذه الخاصية إلا عند تشغيل البرنامج

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

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

      متوفرة أثناء : التصميم والتنفيذ

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

      خصائص السحب والإلقاء

      اسم الخاصية : DragIcon , DragMode

      متوفرة أثناء : التصميم والتنفيذ

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

      وتتحكم خاصية طور السحب DragMode في أسلوب عملية السحب ولها وضعان

      0 "يدوي" وهو الوضع الافتراضي ، وفيه يجب أن تقوم باستخدام الأوامر في بدء وإنهاء عملية السحب .

      1 "تلقائي" وفيه تبدء عملية السحب تلقائياً عندما يضغط المستخدم زر الفأرة فوق الأداة .

      تستخدم هاتين الخاصيتين بالاشتراك مع الحدثين dragdrop ,dragover

      في القيام بعملية السحب . ولأننا لم نشرح الأحداث بعد ، دعنا نأخذ مثالاً بسيطا على عملية السحب والإلقاء.

      v ضع خانتي نص على النافذة وكبر حجمهما ، واتركهما على اسمهما الافتراضي text1,text2

      v انتقل إلى الخانة الأولى text1 وانقر عليها لتنشيطها

      v انتقل إلى نافذة الخصائص وانقر فوق خاصية طور طور السحب DragMode

      وحولها إلى 1automatic

      v انتقل إلى نافذة البرنامج form1 ثم انقر فوق خانة النص الثانية text2 نقراً مزدوجاً

      v سيفتح "فيجول بيسيك" نافذة البرمجة الخاصة بهذه الخانة :



      كما ترى من الشكل اختر الحدث OLEDragdrop الخانة الموضحة في الشكل اكتب السطر :

      كود المصدر

      1. text2.text = text1.text




      v اضغط F5 لتشغيل البرنامج

      v استخدم لوحة المفاتيح لكتابة بعض النص في خانة النص text1

      v انقر فوق خانة النص text1 واسحبها ستجد أن هناك مستطيلا بنفس حجم الخانة يتحرك مع حركة الفأرة

      v ألق هذا المستطيل فوق خانة النص الثانية text2

      ستجد أن النص الموجود في خانة النص الأولى قد انتقل إلى خانة النص الثانية .
    • الدرس الرابع

      محتويات الدرس الرابع :

      v ما هو الحدث ؟

      v كيف تستجيب للحدث ؟

      v نافذة البرمجة

      v الأحداث المشتركة

      v المتغيرات والمصفوفات والإجراءات

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



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






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

      sub command1_click

      فهو يضع كلمة sub وهي تحدد بدء الإجراء ثم يضع اسم الأداة ثم حرف (-)ثم اسم الحدث . وفي النهاية يضع عبارة end sub وهي تحدد نهاية الإجراء .



      الأحداث الناتجة عن الفأرة
      [line]
      -متى يقع
      - معناه
      - الحدث
      [line]
      عند نقر المستخدم فوق الأداة أو النافذة ويمكن أن يقع أيضاً إذا ضغط المستخدم عصا المسافة على لوحة المفاتيح بينما التركيز على زر أوامر
      النقر
      Click
      [line]
      عند نقر المستخدم نقراً مزدوجاً فوق الأداة أو النافذة
      النقر المزدوج
      DbClick
      [line]
      عند تحريك المستخدم الفأرة فوق الأداة أو النافذة
      حركة الفأرة
      MouseMove
      [line]
      عندما يقوم المستخدم بنقر زر الفأرة وقبل أن يحرره..أي أثناء عملية النقر
      زر الفأرة اسفل
      MouseDown
      [line]
      بعد أن يقوم المستخدم بنقر زر الفأرة وتحريره . أي بعد عملية النقر .
      زر الفأرة ارتفع
      MouseUp

      [line]

      كود المصدر

      1. Sub Command1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
      2. End Sub

      وهو هنا يعطيك متغيرات ، كل واحد منها يحمل معلومة معينة ، كما يلي :

      المتغير Button :

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

      1. المستخدم ضغط الزر الأيسر

      2. المستخدم ضغط الزر الأيمن

      3. المستخدم ضغط الزر الأوسط

      ولايمكن للمستخدم أن يضغط أكثر من زر في نفس الوقت . قإذا أردت أن تختبر إن كان المستخدم قد ضغط الزر الأيمن ، فإنك تكتب :

      كود المصدر

      1. if button = 2 then …………..


      فإذا كان المستخدم قد ضغط الزر الأيمن ، سيقوم "فيجول بيسيك" بتنفيذ الأمر التالي لكلمة then

      التغير Shift :

      يوفر لك معلومات عن حالة المفاتيح الثلاثة Ctrl و Shift و Alt أثناء ضغط زر الفأرة ، كما يلي :

      1 المستخدم ضغط مفتاح shift

      2 المستخدم ضغط مفتاح Ctrl

      4 المستخدم ضغط مفتاح Alt

      لاحظ أنه يمكن للمستخدم أن يضغط أكثر من مفتاح في نفس الوقت . في هذه الحالة يحتوي المتغير shift على مجموع المفاتيح التي ضغطها . فمثلاً إذا ضغط على مفتاحي ctrl و alt في نفس الوقت ، فإن المتغير shift سيحتوي على مجموعهما هو 6 لذلك إذا أردت أن تختر إن كان المستخدم ضغط مفتاح shift أثناء ضغطه لزر الفأرة ، فإنك تكتب :

      كود المصدر

      1. if shift = 1 then


      أو أردت أن تختبر إن كان قد ضغط مفتاحي alt و shift أثناء ضغطة لزر الفأرة

      كود المصدر

      1. if shift = 5 then



      المتغيران y,x :

      يحددان موقع المشيرة داخل الأداة أثناء عملية ضغط زر الفأرة .

      الأحداث الناتجة عن لوحة المفاتيح
      هناك ثلاثة أحداث متعلقة بلوحة المفاتيح ، هي :
      [line]
      متى يقع
      معناه
      الحدث
      [line]
      عندما يقوم المستخدم بضغط حرف من حروف آسكي فوف لوحة المفاتيح
      ضغط حرف
      Keypress
      [line]
      عندما يقوم المستخدم بضغط أي حرف على حرف وقبل أن يحرره أي أثناء عملية الضغط
      المفتاح أسفل
      KeyDown
      [line]
      عندما يقوم المستخدم بضغط أي حرف على لوحة المفاتيح ثم يحرره أي بعد عملية الضغط
      المفتاح ارتفع
      Keyup
      [line]
      ويستخدم الحدث keypress عندما تريد أن تعرف الحرف الذي ضغطه المستخدم فوق لوحة المفاتيح

      مثال :

      كود المصدر

      1. Sub Form_KeyPress (keyascii As Integer)
      2. Print keyascii
      3. If keyascii = 81 Then
      4. End
      5. End If
      6. End Sub
      عرض الكل





      v المتغيرات

      v المصفوفات

      v الثوابت



      المتغيرات
      المتغير Variable هو اسم تستخدمه لحمل قيمة متغيرة . فمثلاً إذا أردت أن تسأل المستخدم عن اسمه ، فاسم المستخدم قيمة متغيرة لأنك لاتعرف ماهو . فممكن أن يكون "علي" أو "محمد" أو "عبدالمحسن" أو أي اسم آخر . لذلك نستخدم له متغير ، وليكن UserName$ في هذه الحالة يمكنك كتابة الأمر :

      كود المصدر

      1. )"أدخل اسمك من فضلك"UserName$ = InputBox$ (


      سيعرض "فيجول بيسيك" مربع حوار التالي :



      ملاحظة : يستخدم امر inputbox$ لطلب معلومة من المستخدم.

      شرح السطر السابق هو :

      أن "فيجول بيسيك" يتيح للمستخدم أن يدخل اسمه في الخانة الموجودة في أسفل المربع .

      وعندما ينتهي المستخدم من إدخال الاسم ، فإن "فيجول بيسيك" يضع هذا الاسم في المتغير username$ . ويبقى هذا المتغير يحمل هذه القيمة حتى تقوم بتغييرها.

      ويمكنك استخدام القيمة التي يحملها المتغير كأن تضعها في متغير آخر ، مثل :

      كود المصدر

      1. clientName$ = UserName$


      فهنا سينسخ "فيجول بيسيك" القيمة الموجودة في المتغير username$ ويضعها في المتغير cilentname$ . ويمكن أن تضع هذه القيمة في أداة القائمة مثلاً :

      كود المصدر

      1. list1.additem username$


      ويمكنك تغيير القيمة التي يحملها المتغير بوضع قيمة جديدة داخله ، فيلغي "فيجول بيسيك" القيمة القديمة ويضع محلها القيمة الجديدة . مثلاً :

      كود المصدر

      1. "عبدالرحمن مصلحusername$ = "


      وهذا المتغير يُسمى متغير حرفي string variable لأنه يحتوي على مجموعة حروف . وتوجد كذلك متغيرات عددية وهي تستخدم لحمل الأعداد وليس الحروف . فمثلاً يمكنك أن تسأل المستخدم عن عمره وتضع القيمة التي يدخلها في متغير عددي :

      كود المصدر

      1. )"أدخل عمرك ، من فضلك"userage = inputbox$ (


      ويتميز المتغير العددي بإمكانية إجراء العمليات الحسابية مثل الطرح والضرب والقسمة عليه مثل برنامج الوحدات الذي قمتُ ببرمجته وشرحة


      اختيار اسم المتغير
      هناك شروط لاختيار اسم المتغير منها :

      · يجب ألا يزيد اسم عن 40 حرفاً

      · يجب أن يكون أول حرف منه حرفاً هجائياً

      · يجب ألا تستخدم كلمة من الكلمات المحجوزة reserved words كأسم للمتغير من الكلمات المحجوزة print و end ولكن يمكن أن تكون جزء من اسم اخر مثل PrintText
      [line]
      أنواع المتغيرات
      [line]
      مداه
      معناه
      نوع المتغير
      [line]
      من –32768 إلى 32767
      عدد صحيح
      Integer
      [line]
      من –214748E إلى 21474
      عدد صحيح
      Long
      [line]
      -3.402823 إلى –1.40129
      من 1.4012 إلى 3.4028
      عدد ذو فاصلة عشرية عائمة
      Single
      [line]
      -1.7976931 إلى –4.9406

      من 4.94065 إلى 1.79769
      عدد ذو فاصلة عشرية
      Double
      [line]
      ============
      =======
      Currency
      [line]
      من 0إلى 65.500 حرف تقريباً
      مجموعة من الحروف
      String
      [line]
      حرفي أو عددي
      بتاع كُـله
      Variant
      [line]

      الإعلان عن المتغيرات
      الإعلان عن المتغير أن تخبر "فيجول بيسيك" عن اسم المتغير ونوعه ، مثل :

      كود المصدر

      1. Dim UserName As String


      فهنا الأمر Dim يخبر "فيجول بيسيك" أننا نريد أن نعلن عن متغير ، وكلمة UserName كمتغير يحمل سلسلة حروف . في هذه الحالة ، يقوم "فيجول بيسيك" بحجز الذاكرة الضرورية لذلك المتغير وتهيئته .

      لاحظ أن الإعلان عن المتغير ليس إجباري

      الفائدة من الإعلان عن المتغيرات

      عدم الإعلان عن المتغير قد يؤدي أحياناً إلى أخطاء خفية في برنامجك .فمثلاً انظر السطرين التاليين :

      كود المصدر

      1. )"أدخل اسمك من فضلك"username$ = inputbox$ (


      كود المصدر

      1. print usename$


      سيقوم السطر الأول بالتنفيذ ويطلب المستخدم بالاسم ولكن لن يطبع اسم المتغير لإن الكلمة خطا (ناقصة حرف r ) ومع ذلك سوف يقوم"فيجول بيسيك" بتنفيذ البرنامج بدون أي مشاكل !!!

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

      كود المصدر

      1. Option Explicit


      ويتم الإعلان عن المتغيرات باستخدام أحد الأوامر التالية :

      Dim ,Global ,Static

      يجب الإلتزام بنوع المتغير
      مثلا :

      لا يجوز أن تعلن عن متغير عددي وتضع فيه قيمة حرفية

      والعكس صحيح كذلك



      مدى المتغيرات وعمرها :

      المتغيرات العامة

      المتغير العام هو المتغير الذي يمكنك أن تستخدمه من أي مكان في البرنامج ، أي أن مداه يشمل جميع البرنامج بجميع ملفاته ونوافذه .

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

      ولكن يجب أن تضع الإعلان عن المتغير العام في ملف برمجة وليس في نافذة .

      طريقة ادخال المتغيرات التي ترغب في جعلها متغيرات عامة هي

      Global UserName As String

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



      المصفوفات

      المصفوفة Array هي سلسلة من المتغيرات تحمل نفس الاسم ويتم التمييز بين المتغيرات داخل هذه المصفوفة باستخدام رقم المتغير داخلها .

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

      كود المصدر

      1. Dim EnpName(50) As String
      هنا ، الاسم EmpName هو اسم المصفوفة ، والرقم (50) هو عدد العناصر داخلها ثم كلمة String تحدد نوع المتغيرات التي ستضعها في المصفوفة . كلمة as string اختيارية وإن لم تحددها سيكون نوع المتغيرات هو variant وبالتالي يمكن تخزين أي نوع فيه .

      يمكنك قراءة أسماء الموظفين ووضعها في المصفوفة باستخدام تكرار For …Next

      بالشكل التالي :

      كود المصدر

      1. For counter = 0 to 49
      2. Empname(counter) = inputbox$("أدخل اسم الموظف التالي")
      3. Next counter


      فهنا نستخدم تكرار for ..next (سوف نشرحها بالتفصيل في المحاضرات التالية)

      لنطلب من المستخدم إدخال أسماء الموظفين . هذا التكرار يستمر خمسين مرة من صفر إلى 49 . لاحظ أن العد داخل المصفوفة يبدأ من صفر وليس من 1 . لذلك تبدأ المصفوفة من الرقم صفر وتستمر حتى 49 .

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

      كود المصدر

      1. "الدكتور منصور"empname(9) =


      وإذا أردت قراءة القيمة الموجودة في المتغير رقم 20 داخل المصفوفة ووضعها في متغير آخر فإنك تكتب :

      كود المصدر

      1. curname =empname(19)


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

      كود المصدر

      1. option base 1



      الثوابت

      الثوابت تعني لها قيمة لاتتغير بعكس المتغير

      مثلا بدلا من أن تضع قيمة معينة على كل البرنامج ضع ثابت لها في أول البرنامج ثم اكتب البرنامج على اساس الثابت بدلا من القيمة في كل البرنامج

      مثال :

      لنفرض أن لديك عشرين موظفاً تريد أن تطلب بياناتهم من المستخدم يمكنك أن تكتب عدد الموظفين وهو هنا 30 مباشرة في كل مرة تحتاج إلى ذلك مثل :

      كود المصدر

      1. for counter = 1 to 30
      2. …………………..
      3. ………………….
      4. Next counter

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

      وكحل لتلك المسألة ، استخدم ثابتاً constant وضعة في بداية البرنامج أو الإجراء مرة واحدة وتضع فيه العدد الذي ترغب فيه ، مثل :

      كود المصدر

      1. const NUM_OF_EMPLOYEES =30

      وبعد ذلك تقوم في عملية التكرار بعمل التالي :

      كود المصدر

      1. for counter = 1 to NUM_OF_EMPLOYEES
      2. …………………..
      3. ………………….
      4. Next counter

      وبذلك يتحقق أمران : الأول أن الثابت NUM_OF_EMPLOYEES أسهل في تذكر معناه من الرقم 30 ، والثاني : انك لو أردت تغيير عدد الموظفين من 30 إلى 60 كما افترضنا من قبل ، فكل ماعليك القيام بة هو تغيير الثابت من القيمة القديمة إلى القيمة الجديدة .
      وهناك فائدة أخرى أن "فيجول بيسيك"يستخدم نظاماً خاصا لتحديد درجات الألوان فإذا أردت أن تغير لون أداة إلى الأزرق أثناء تشغيل البرنامج ، فإنك تكتب :

      كود المصدر

      1. LABEL1.BACKCOLOR = &HFF0000


      فإن "فيجول بيسيك" يستخدم الرقم &HFF0000 للأزرق وغيرها من الألوان فكيف يمكنك أن تتذكر كل هذه الأرقام الغير مفهومة ؟

      الحل : هو أن تضعها في ثوابت بالطريقة التالية :

      كود المصدر

      1. const BLACK = &H0&
      2. const RED = &HFF&

      وبهذة الطريقة يمكنك أن تغير الألوان بطريقة مفهومة وسهلة الاستخدام

      مثال :

      كود المصدر

      1. LABEL1.BACKCOLOR = RED

      مدى الثوابت :

      مثل المتغيرات بالضبط فإذا كنت تريد أن تستعمل الثابت في كل النوافذ الموجودة في البرنامج فيجب أن تضع الثابت في ملف برمجة وتسبقه بكلمة Global

      مثال :

      كود المصدر

      1. Global const User_NAME = "ABSOFT2000"


      أما إذا كنت تريد أن تستعمله في نافذة واحدة فضعه في داخل نافذة البرمجة الخاصة بتلك النافذة

      الاجراءات

      متى تحتاج إلى الاجراءات ؟

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

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

      الحل الأمثل هو أن تضع مجموعة الأوامر المتكررة في ( إجراء عام ) ثم تستدعي هذا الإجراء كلما احتجت له . وهذه هي فائدة الاجراءات

      كيف تكتب الإجراء ؟




      Object انقر نافذة البرنامج نقرا مزدوجا لكي تفتح لك نافذة البرمجة ثم إذهب إلى


      واضغط السهم سوف ينسدل لك قائمة انقر منها (general)

      وبعد ذلك سوف تجد نافذة البرمجة خالية اكتب فيها ما يلي :

      اسم الاجراءsub

      Sub Getfilename مثل :

      ثم اضغط زر إدخال من لوحة المفاتيح يظهر لك مايلي :



      كود المصدر

      1. Sub getfilename ( )


      هنا تكتب الاوامر التي تريدها لهذا الاجراء

      كود المصدر

      1. End sub


      وعندما تريد أن تستدعي الاجراء ماعليك إلا أن تكتب اسمه فقط .
    • الدرس الخامس

      محتويات الدرس الخامس :

      v المعاملات (<> و < و > و => و =< )

      v تركيب If…Then

      v تركيب if …then …else

      v تركيب select case

      v تركيب For…Next

      v تركيب do...loop



      أولاً : المعاملات

      سوف نلخصها في هذا الجدول
      [line]
      خاطئ إذا
      صحيح إذا
      مثال
      معناه
      المعامل
      [line]
      A أصغر أو أكبر من B
      A تساوي B
      A = B يساوي =
      [line]
      A تساوي B
      A تختلف عن B
      A <> B
      لايساوي
      <>
      [line]
      A أكبر من أو يساوي B
      A أصغر من B
      A < B
      أصغر من
      >
      [line]
      A أكبر من B
      A أصغر من أو يساوي B
      A <= B
      أصغر من أو يساوي
      =>
      [line]
      A أصغر من أو تساوي B
      A أكبر من B
      A > B
      أكبر من
      <
      [line]
      A أصغر من B
      A أكبر من أو يساوي B
      A >= B
      أكبر من أو يساوي
      =<
      [line]

      ملاحظة :الرجاء من المبرمجين حفظ هذا الجدول

      تركيب If…Then

      كود المصدر

      1. If شرط Then أمر واحد
      2. مثال
      3. if "علي"Pw$ <> Then end


      فإذا كانت الكلمة التي أدخلها المستخدم تختلف عن <> عبارة "علي" فإن الشرط يعد صحيحاً ويقوم "فيجول بيسيك" بتنفيذ الأمر الذي يلي كلمة Then وهو امر end وهو يقوم بإنهاء البرنامج .

      يمكن تنفيذ عدة أوامر بالطريقة التالية

      كود المصدر

      1. If شرط Then
      2. الاوامر مجموعة
      3. End if


      مثال : (برنامج إدخال كلمة سر )

      كود المصدر

      1. )"أدخل كلمة السر من فضلك"pw$ = inputbox$ (
      2. then "علي"if pw$ <>
      3. beep
      4. beep
      5. "كلمة السر غير صحيحة"msgbox
      6. end
      7. end if
      عرض الكل




      تركيب if…then ….else

      وتكون صياغته بالشكل التالي :



      كود المصدر

      1. if شرط then
      2. مجموعة أوامر
      3. else
      4. مجموعة أوامر
      5. end if


      في هذا التركيب يقوم "فيجول بيسيك" بتقييم الشرط ، فإن كان صحيحاً فإنه ينفذ مجموعة الأوامر التي تلي كلمة then حتى كلمة else وإن كان خاطئاً فإنه ينفذ مجموعة الأوامر

      التي تلي كلمة else حتى كلمة end if . أي أنه لابد من تنفيذ إحدى المجموعتين من الأوامر . مثال :

      كود المصدر

      1. )"أدخل كلمة السر من فضلك"pw$ = inputbox (
      2. then "علي" if pw$ =
      3. "أهلا وسهلاً بك في البرنامج" msgbox
      4. else
      5. "هذا البرنامج مخصص لمجموعة محددة من المستخدمين"msgbox
      6. end
      7. end if
      عرض الكل



      يقوم البرنامج بسؤال المستخدم عن كلمة سر فإذا كانت صحيحة فإنه يرحب به وأما إذا كانت غير ذلك يعرض عليه رسالة توضيحية وبعدها يخرج من البرنامج



      تركيب Select Case

      إذا كان لديك احتمال واحد أو احتمالين للشرط ، فإنه يمكنك إستخدام تركيبات if التي ذكرناها سابقاً . أما إذا كان لديك عدة احتمالات فإنه من الأفضل أن تستخدم تركيب Select Case وتكون صياغته كالتالي

      كود المصدر

      1. select case الشرط
      2. Case الاحتمال الأول
      3. مجموعة أوامر
      4. Case الاحتمال الثاني
      5. مجموعة أوامر
      6. Case الاحتمال الثالث
      7. مجموعة أوامر
      8. ………
      9. Case Else إذا لم يكن أي من الاحتمالات السابقة
      10. End Select
      عرض الكل



      في هذا التركيب يقوم "فيجول بيسيك" بتقييم الشرط في بداية التركيب . ثم يبدأ في مقارنته مع الاحتمالات المختلفة التي تذكرها عند كلمة Case ، فإذا وافق أحدها الشرط ، فإنه يقوم بتنفيذ مجموعة الأوامر التي تليها حتى كلمة Case التالية . وإذا لم يوافق أي من الاحتمالات المذكورة فإنه ينفذ مجموعة الأوامر التي تلي كلمة Case Elese ( وهي اختيارية ) فإذا لم تكن موجودة ، فإنه لانفذ أي من تلك الأوامر

      وكمثال على تركيب Select Case ، لنفرض أن لديك أربعة مستخدمين للبرنامج وتريد أن تحدد درجة المستخدم حسب كلمة السر التي يدخلها ، فإنك تكتب شيئاً مشابها لمجموعة الأوامر التالية :

      كود المصدر

      1. "أدخل كلمة السر من فضلك"pw$ = inputbox (
      2. المعيار الذي سنتفرع بناءاً على قيمته select case pw$
      3. هل هي الخفجي؟ "الخفجي" case
      4. مجموعة الأوامر
      5. هل هي الوفرة؟ "الوفرة" case
      6. مجموعة الأوامر
      7. ليست واحدة من الكلمات Case Else
      8. "كلمة السر غير صحيحة "msgbox
      9. end
      10. end selcet
      عرض الكل



      التكرار :

      التكرار loop يعني تكرار مجموعة معينة من الأوامر عدد معين من المرات . وهناك ثلاثة تركيبات لعمل ذلك وهي :

      تركيب for …next

      يستخدم إذا كنت تعرف عدد المرات التي ترغب في تكرارها ، وتكون صياغته كالتالي:


      كود المصدر

      1. for متغير يستخدم للعد = البداية to النهاية step الزيادة في كل مرة(اختياري ضع مجموعة الأوامر التي تريد تكرارها هنا
      2. اسم المتغير next


      مثال :

      إذا أردت أن تكرر مجموعة أوامر عشرة مرات مثلا قم بما يلي :

      كود المصدر

      1. for counter = 1 to 10


      مجموعة الأوامر

      كود المصدر

      1. next counter


      ويجب أن لا تعدل قيمة المتغير الذي يحمل عدد مرات التكرار

      مثال

      كود المصدر

      1. for counter = 1 to 10
      2. ………………….
      3. Counter = counter +1
      4. Next counter

      هذا التكرار سيتفذ 5 مرات لأن في كل مرة يتم فيها تنفيذ مجموعة الأوامر المحصورة بين for و next تتم فيها زيادة المتغير مرتان .

      كود المصدر

      1. تكرار do…...loop


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

      الشكل الأول

      كود المصدر

      1. شرط do while
      2. مجموعة الأوامر ……
      3. loop
      في هذه الصياغة يقوم "فيجول بيسيك" بتقييم الشرط ، فإن كان خاطئا فلا يقوم بتنفيذ التكرار أبداً . أما إذا كان صحيحاً ، فإنه يقوم بتنفيذ مجموعة الأوامر المحصورة كلمتي do و loop مرة. ثم يعود ويختبر الشرط مرة أخرى .. وهكذا حتى يجد الشرط خاطئاً فيخرج من التكرار .

      كود المصدر

      1. dim myval as string
      2. do while myval <> "bye"
      3. input #1, myval
      4. print myval
      5. loop


      في هذا المثال يضل يقرأ حتى يصل إلى كملة "bye "

      الشكل الثاني

      DO
      مجموعة الأوامر

      الشرط Loop while

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


      [line]
      الخروج من التكرار :
      [line]
      اسم التكرار Exit for
      طريقة الخروج التكرار for…next
      [line]
      اسم التكرار Exit loop
      طريقة الخروج التكرار do …loop
      [line]

    • الدرس السادس والأخير

      محتويات الدرس السادس :

      v أهم خصائص النافذة

      v أهم أحداث النافذة

      v إظهار النوافذ وإخفائها



      أهم الخصائص للنافذة
      اسم الخاصية : AutorRedraw

      متوفرة أثناء : التصميم والتنفيذ

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

      أما إذا كتبت أي شئ على النافذة باستخدام الأمر print أو رسمت أي شكل هندسي بإستخدام الأمر circle أو line ثم قام المستخدم بتصغير النافذة ثم تكبيرها فإن النافذة ستفقد محتوياتها وتظهر بدون الأشكال أو العبارات التي طبعتها ذلك أن الناتج من هذه الأوامر ليس ثابتاً . جرب ذلك :

      مثال

      v افتح مشروع جديد

      v انقر نقراً مزدوجاً فوق النافذة form1 لتفتح نافذة البرمجة الخاصة بها .

      v غير الحدث المعروض في النافذة إلى حدث النقر click

      v اكتب التعليمات التالية :

      كود المصدر

      1. sub form_click ( )
      2. circle (2500,2000),1500
      3. "هذه تجربة على الكتابة فوق النافذة " print
      4. end sub


      v شغل البرنامج بالضغط على F5

      v انقر فوق النافذة سوف يقوم "فيجول بيسيك" بتنفيذ الأوامر التي وضعتها في



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

      والحل هو أن تضع الأوامر في الحدث paint بدلاً من click

      مثال :

      كود المصدر

      1. sub form_paint ( )
      2. circle (2500,2000),1500
      3. "هذه تجربة على الكتابة فوق النافذة " print
      4. end sub


      v شغل البرنامج F5

      v صغر النافذة وكبرها ، ستجد أن النافذة محتفظة بمحتوياتها

      حل أخر ( هو يمكن أن تغير خاصية النافذة form1 وتضع autodedraw قيمة true

      شرح دراسة الخصائص للنافذة form1 في المحاضرة



      إخفاء النافذة
      استخدم امر hide لإخفاء النافذة

      مثال :

      كود المصدر

      1. form2.hide


      وهذا الامر يقوم بإخفاء form2

      اظهار النافذة
      مثال :

      كود المصدر

      1. form2.show


      وهذا الامر يقوم بإظهار form2

      أوامر التعامل مع الملفات والأدلة
      v معرفة القرص والدليل الحالي

      إذا أردت معرفة القرص والدليل الحالي ، استخدم الأمر curdir$

      مثال :

      كود المصدر

      1. label1.caption = curdir$




      يعود هذا بالدليل الحالي بكاملة بما فيه القرص الحالي . لذلك يمكنك استخدام الأمر left$ لقراءة أول حرف فيه ومن ثم معرفة القرص الحالي ، مثل :

      كود المصدر

      1. mydrive$ = left$(curdir$, 1)


      فهنا المتغير mydrive يحتوي على القرص الحالي



      معرفة الدليل الذي بدأ منه برنامجك

      مثال :

      كود المصدر

      1. a$ = app.path




      نسخ ملف

      عندما ترغب في نسخ ملف ، استخدم الأمر filecopy وله الصيغة التالية

      "الهدف" ," المصدر" filecopy

      مثال :

      كود المصدر

      1. filecopy "c:\mypro\test.exe” , “c:\windows\test.exe”


      ومن الممكن تغيير اسم الملف عند النسخ

      مثال :

      كود المصدر

      1. filecopy "c:\mypro\test.exe” , “c:\windows\absoft.exe”


      حذف ملف
      باستخدام امر kill

      مثال :

      كود المصدر

      1. kill "c:\mypro\test.exe”




      يجب أن تتحلى بالحذر عند استخدام هذا الامر لإنه أيضا يستخدم خاصية * و ؟

      كما تفعل في نظام دوس

      مثال :

      كود المصدر

      1. kill "*.tmp"



      إعادة تسمية الملفات والأدلة
      فمثلاً من الممكن تسمية الملفات أو الأدلة باستخدام الأمر name وله الصيغة التالية:

      "الاسم الجديد"as "الاسم القديم"name

      مثال

      كود المصدر

      1. name "c:\mypro\test.exe” as "c:\mypro\test.old”


      ومن الممكن أن تستخدم الأمر لنقل ملف من دليل إلى آخر فمثلاً :

      كود المصدر

      1. name "c:\mypro\test.exe” as "c:\test.exe”


      فهنا ننقل الملف test.exe من دليل mypro إلى الدليل الجذري c:\

      البحث عن ملف
      بإستخدام امر dir$

      مثل الامر الموجود في نظام دوس

      مثال :

      كود المصدر

      1. exist$ = dir$ (“c:\vb\icons\computer\disk03.ico”)


      يحمل المتغير exits$ نتيجة البحث عن الملف . ويمكنك بعد ذلك إختباره

      مثال :

      كود المصدر

      1. if exist$ <> “” then
      2. )"تم العثور على الملف"msgbox (
      3. else
      4. "لم يتم العثور على الملف المطلوب"msgbox
      5. end if


      فتح الملف
      لكي نقرأ أو نكتب إلى ملف ، يجب أن تفتحه أولاً . ويمكنك فتح الملف باستخدام الأمر open وله الصيغة التالية :

      كود المصدر

      1. open اسم الملف for طور الملف as رقم الملف#


      ويعني طور الملف مايلي
      [line]
      فتح الملف للقراءة : استخدم كلمة input
      [line]
      فتح الملف للكتابة (يمسح محتويات الملف) :استخدم كلمة output
      [line]
      فتح الملف للإضافة (يقوم بإضافة ) :استخدم كملة append
      [line]
      بعد فتح الملف يمكنك أن تقوم بالعمليات التالية :

      v الكتابة إلى الملف

      تتم الكتابة إلى الملف باستخدام الأمر print

      وله الصيغة التالية :

      كود المصدر

      1. "ماتريد كتابته" , رقم الملفprint #


      مثال

      كود المصدر

      1. "خلاص قربت تنتهي دورة فيجول بيسك" , 1print #


      مثال على ذلك
      v افتح مشروع جديد

      v ضع اداة الأوامر على نافذة البرنامج

      v وبعد ذلك انقر على اداة الأوامر نقرا مزدوجاً

      سيفتح لك نافذة البرمجة اكتب مايلي :

      كود المصدر

      1. sub command1_click ()
      2. open "c:\test.txt” for output as #1
      3. "هذا اختبار لفتح الملفات والكتابة عليها print #1 , "
      4. "بإستخدام فيجول بيسك print #1 , "
      5. close #1
      6. end sub
      عرض الكل


      القراءة من الملف
      استخدم الأمر input وله الصيغة التالية :

      كود المصدر

      1. متغير , رقم الملفinput #


      وفي هذه الحالة سيقوم بقراءة سطر كامل من الملف ، ويضعه في المتغير . فإذا فرضنا أنك فتحت الملف تحت الرقم 1 ، يمكنك أن تكتب :

      كود المصدر

      1. input #1 , myline$


      فهنا سيقرأ الأمر input سطراً من الملف ويضعه في المتغير myline$


      ولكن إحذر أن تقرأ إلى نهاية الملف لإن "فيجول بيسيك" سوف يقوم بتوقيف البرنامج

      ولحل ذلك اختبر قيمة الأمر ) رقم الملف EOF(

      كود المصدر

      1. if EOF(1) then
      2. وصلنا إلى نهاية الملف
      3. else
      4. لم نصل إلى نهاية الملف
      5. end if


      جرب القراءة من الملفات :

      v افتح مشروع جديد

      v ضع اداة الأوامر على نافذة البرنامج

      v وبعد ذلك انقر على اداة الأوامر نقرا مزدوجاً

      سيفتح لك نافذة البرمجة اكتب مايلي :

      كود المصدر

      1. sub command1_click ()
      2. open "c:\autoexec.bat” for input as #1
      3. do while not eof (1)
      4. input #1, a$
      5. print a$
      6. loop
      7. close #1
      8. end sub
      عرض الكل
      v

      شغل البرنامج F5


      كيف تغلف الملف ؟

      بعد أن تنتهي من القراءة أو الكتابة ، يجب أن تغلف الملف وهو سهل جداً ماعليك إلى أن تكتب

      كود المصدر

      1. رقم الملفClose #


      وإذا كنت تريد أن تغلف ملفات كثيرة فتحتها اكتب

      كود المصدر

      1. Close



      كيف تطلب معلومة من المستخدم ؟
      ومع أنها الان مفهومة ولكن هنا سوف نقوم بشرحها بالتفصيل

      طلب معلومة من المستخدم استخدم الامر inputbox$

      وله صيغة التالية

      كود المصدر

      1. متغير Inputbox$ ,رسالة( ,عنوان النافذة (قيمة افتراضية


      رسالة تعني : الجملة التي تريد عرضها على المستخدم

      عنوان النافذة : هو شريط العنوان في النافذة التي يعرضها على المستخدم

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





      كيف تعرض هذه الرسالة ؟



      يتم عرض هذه الرسائل باستخدام الأمر msgbox وله شكلان . الأول إذا كنت تريد عرض رسالة بيسطة ولا تطلب من المستخدم أن تحدد رأيه في مسألة معينة ، في هذه الحالة استخدام الصيغة التالية :

      عنوان مربع الحوار, الأزرار والرموز , الرسالة المطلوبه msgbox

      أما إذا كنت تريد أن تعرف رأيه بشئ معين قم بوضع الامر بالطريقة التالية

      كود المصدر

      1. عنوان مربع الحوار, الأزرار والرموز , الرسالة المطلوبه msgbox = المتغير


      وفي هذه الحالة سيحمل المتغير رد فعل المستخدم

      الرسالة المطلوبه : هو الجملة التي تريد عرضها على المستخدم

      عنوان مربع الحوار : هو عنوان شريط عنوان مربع الحوار

      الأزرار والرموز : وهو يحدد نوعية الأزرار التي ترغب في عرضها والرموز

      وهذه الرموز والأزرار :
      [line]
      الرقم ----> معناه
      [line]
      0 عرض زر ok (موافق)
      1 عرض زري ok (موافق) و cancel (إلغاء الأمر)
      2 عرض أزرار abort (توقف) وretry (إعادة المحاولة) ignore (تجاهل)
      3 عرض أزرار yes (نعم) و no (لا) و cancel (إلغاء الأمر)
      4 عرض أزرار yes (نعم) و no (لا)
      5 عرض أزرار retry (إعادة المحاولة) وcancel ( إلغاء الأمر)
      16 عرض رمز قف
      32 عرض رمز علامة الاستفهام
      48 عرض رمز علامة التعجب
      64 عرض رمز علامة الاستعلام
      [line]

      فإذا رغبت في عرض رسالة تحتوي على الأزرار ok و cancel ومعها رمز علامة الاستعلام ،فإنك تجمع 1+64 = 65 وتستخدمها عندما تطلب الرسالة هكذا :

      كود المصدر

      1. "بدون عنوان", 65, "هذه رسالة للتجربة"msgbox


      وإذا كنت تريد أن تعرف رد فعل المستخدم ، فإن الأمر msgbox يعود بالاحتمالات التالية :
      [line]
      الرقم ----> المستخدم نقر زر...
      [line]
      1 Ok ( موافق)
      2 Cancel (إلغاء امر)
      3 Abort (توقف)
      4 Retry (إعادة المحاولة)
      5 Ignore (تجاهل)
      6 Yes (نعم)
      7 No (لا)
      [line]

      ومثال على ذلك :

      كود المصدر

      1. sun command1_click ()
      2. " هل ترغب حقاً في إنهاء البرنامج "msg$ =
      3. "الخروج من البرنامج"title =
      4. response = msgbox (msg ,36 ,title )
      5. if response = 6 then end
      6. end sub
      عرض الكل


      شرح البرنامج :

      في هذه الحالة سيعرض "فيجول بيسيك" الرسالة وإذا اختار المستخدم "نعم" yes

      فإن "فيجول بيسيك" ينهي البرنامج .



      الصوت في "فيجول بيسيك"

      يجب كتابة هذا الربط الديناميكي في ملف برمجة في سطر واحد ولكنه هنا في سطرين ‍‍‍‍‍.

      كود المصدر

      1. Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long



      أما هذا الامر فوق النافذة نفسها وتضعه في general

      كود المصدر

      1. Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long


      وبعد كتابة هذا السطر ماعليك الان إلا كتابة الاسم فقط وهو SNDPLAYSOUND

      كود المصدر

      1. DIM Result as integer
      2. Result = sndplaysound(“c:\windows\toda.wav”,3)



      يقوم هذا الاجراء بمعرفة مسار برنامجك الذي شغل منه ثم يشغل ملف موجود في نفس المسار وهو أفضل من السابق .

      كود المصدر

      1. b$ = app.Path
      2. ) sound1 = SNDPLAYSOUND(b$ + "\" + "ton.WAV", 3


      [line]
      [line]
      نتمنى أن تكونو قد أستفدتم من هذه الدروس
      [line]
      [line]