You are on page 1of 55

‫ي‬ ‫ب‬ ‫ل‬

‫تطبيقات برجمية ابستخدام لغة ا سك املريئ‬

‫إعداد‪ :‬أ‪ .‬ايمان عامر أبومريم‬


‫مدرسة‪ :‬مختار بالحاج ‪ /‬سوق الجمعة‬
‫‪‬‬

‫‪Software application visual basic language‬‬ ‫‪‬‬

‫من منتجات ميكروسوفت ذات تصميم مرئي وواجهة رسومية‬ ‫‪‬‬

‫(‪Graphical user inter face )GUI‬‬ ‫‪‬‬

‫تطورت وأضيف لها الكثير من األدوات مما جعلها بيئة برمجة متكاملة‬ ‫‪‬‬

‫سهل إنتاج التطبيقات‬


‫َ‬ ‫ُ‬ ‫ت‬
‫واهجة البيسك املريئ ‪-:‬‬
‫شريط أدوات التحكم‬
‫نافذة المستكشف‬
‫نافذة شكل النموذج‬

‫تكون مجتمعة بيئة التطوير المتكاملة‬ ‫شريط القوائم‬


‫‪Integrated Development Environment‬‬ ‫شريط األدوات‬
‫نافذة الخصائص‬
‫نافذة النموذج‬

‫تشغيل برانمج البيسك املريئ ‪-:‬‬


‫ابدأ ‪Micro soft visual studio ----------Micro soft visual basic6 --------‬‬
‫شريط أدوات التحكم‬
‫أدوات التحك‪7‬م ه‪7‬ي األدوات األس‪7‬اسية لبناء التط‪7‬بيقات البرمجي‪7‬ة وعبارة ع‪7‬ن برام‪7‬ج جاهزة لتوف‪7‬ر الوق‪7‬ت والجه‪7‬د ويت‪7‬م ربطها‬
‫بأوامر البرمجة لتعالج البيانات المدخلة‬
‫إظهار شريط أدوات التحكم‬
‫القوائم من قائمة ‪View ------Tool Box‬‬ ‫باستخدام‬ ‫‪‬‬

‫شريط األدوات نضغط على إيقونة شريط أدوات التحكم‬ ‫باستخدام‬ ‫‪‬‬

‫وضع أدوات التحكم على النموذج‬


‫المزدوج على األداة‬ ‫بالضغط‬ ‫‪‬‬

‫السحب واإلفالت‬ ‫بط‪7‬ريقة‬ ‫‪‬‬

‫تعديل موقع وحجم األداة على النموذج‬


‫الموقع بط‪7‬ريقة السحب واإلفالت‬ ‫تعديل‬ ‫‪‬‬

‫الحجم بسحب المربعات الظاهرة في أط‪7‬راف األداة وإفالتها عند الوصول إلى الحجم المطلوب‬ ‫تعديل‬ ‫‪‬‬
‫نافذة مستكشف المشروع‬
‫‪‬إظهار نافذة مستكشف المشروع‬
‫من شريط القوائم ‪ -:‬من قائمة ‪ View‬ثم أمر ‪Project Explorer‬‬ ‫‪‬‬

‫‪‬من شريط األدوات ‪ -:‬نضغط على زر ‪project explorer‬‬


‫‪‬من لوحة المفاتيح ‪ -:‬نضغط على المفتاحين ‪Ctrl + C‬‬
‫عرض قوائم بجميع مكونات المشروع ‪files – modules - forms‬‬
‫يتم التبديل بين عرض النموذج وعرض شاشة محرر الكود من خالل الزرين‬
‫( ‪ view form‬أو ‪ )view Object‬و ( ‪ Code editor‬أو ‪) view code‬‬
‫نافذة شكل النموذج‬
‫إظ‪7‬هار نافذة شكل النموذج من قائمة ‪ view‬ثم آمر ‪form layout window‬‬
‫لتوضيح مكان النموذج على الشاشة‬
‫معرفة درجة وضوح الشاشة بالضغط بالزراأليمن ثم نختار اآلمر ‪Resolution guide‬‬
‫‪‬قائم‪7‬ة التنقي‪7‬ح ‪ : Debug‬الختيار طريق‪7‬ة الت‪7‬ي يت‪7‬م به‪7‬ا تنفي‪7‬ذ ال‪7‬برنامج مث‪7‬ل ‪ Step Into‬تنفي‪7‬ذ س‪7‬طر واح‪7‬د ‪ Step Over‬تنفي‪7‬ذ ال‪7‬برنامج بالكامل‬
‫– ‪ Step Out‬تنفي‪7‬ذ آم‪7‬ر س‪7‬ابق – ‪ Run to Cursor‬تنفي‪7‬ذ حت‪7‬ى الس‪7‬طر الموجود ب‪7‬ه مؤش‪7‬ر الكتاب‪7‬ة – ‪ Break Points‬عالمات التوقف‬
‫ً‬
‫يختارها المبرمج إليقاف البرنامج مؤقتا عند الوصول إلى هذه العالمة‬
‫‪‬قائمة التنفيذ ‪ -: Run‬يتم من خاللها يتم تنفيذ البرنامج ‪ Start‬تنفيذ – ‪ End‬إنهاء – ‪ Break‬إيقاف مؤقت ‪ Restart‬إعادة التنفيذ‬
‫األدوات ‪ -:Tools‬تحتوي على أوامر مثل إضافة إجراء ‪ – add procedure‬محرر القوائم ‪Menu Editor‬‬ ‫قائمة‬ ‫‪‬‬

‫‪‬قائمة اإلضافات ‪ -: add Ins‬تشغيل برامج من خارج بيئة ‪V.B‬لخلق تكامل مع اللغة منها ‪visual data manager‬‬
‫النافذة ‪ Window‬لعرض النوافذ بالشكل المطلوب‬ ‫قائمة‬ ‫‪‬‬

‫‪‬قائمة المساعدة ‪ : Help‬استدعاء ملف التعليمات والتعريف باللغة والرخصة‬

‫شريط األدوات‬
‫يحتوي على مجموعة من األزرار وهي عبارة عن بعض األوامر الموجودة تحت القوائم الشائعة االستعمال للتعامل مباشرة معها‬
‫شريط القوائم‬
‫يحتوي على مجموعة من القوائم وكل قائمة تحتوي على مجموعة أوامر على حسب وظ‪7‬يفة القائمة ومنها ‪:‬‬
‫‪‬قائمة ملف ‪File‬‬
‫تحتوي عل‪7‬ى اآلوم‪7‬ر األس‪7‬اسية ‪ New Project‬مشروع جدي‪7‬د أ‪7‬و ‪ Save Project‬حف‪7‬ظ مشروع أ‪7‬و ترجمة المشروع‬
‫وتحويله أي ملف ثنائي (تنفيذي) ‪Make Project exe‬‬
‫تعديل ‪ : Edit‬تحتوي على اآلوامر القياسية مثل ‪Copy – Past – Cut‬‬ ‫قائمة‬ ‫‪‬‬

‫‪‬قائمة عرض ‪ : View‬لعرض النوافذ المكونة لواجهة ‪ V.B‬مثل ‪ Tool Box‬صندوق أدوات التحكم‬
‫‪ Properties Window‬ن‪77‬افذة ا‪77‬لخصائص‬
‫المشروع ‪:Project‬تحتوي عل‪7‬ى األوام‪7‬ر الخاص‪7‬ة بالمشروع وم‪7‬ن خالله‪7‬ا يت‪7‬م إضاف‪7‬ة عناص‪7‬ر للمشروع مثل ‪Form‬‬ ‫قائم‪7‬ة‬ ‫‪‬‬
‫نماذج – ‪ Modules‬وحدات برمجية – ‪ Property pages‬صفحات الخصائص‬
‫التنسيق ‪ : Format‬لتنسيق األدوات وتغيير ترتيبها مثل ‪Order‬‬ ‫قائمة‬ ‫‪‬‬
‫نافذة الخصائص ‪Properties Window‬‬
‫‪‬إظهار نافذة الخصائص‬
‫‪‬من شريط القوائم ‪ -:‬قائمة ‪ View‬ـــــــــــــــ ‪Properties Window‬‬
‫‪‬من شريط األدوات ‪ -:‬نضغط على زر ‪Properties Window‬‬
‫‪‬من لوحة المفاتيح ‪ -:‬نضغط على المفتاح ‪F4‬‬
‫م‪7‬ن خالله‪7‬ا يت‪7‬م تحدي‪7‬د قي‪7‬م معين‪7‬ة م‪7‬ن المميزات مث‪7‬ل العنوان – الحج‪7‬م – اللون – االس‪7‬م ال‪7‬برمجي ‪...‬الخ لك‪7‬ل أداة م‪7‬ن األدوات بم‪7‬ا فيها النموذج‬‫‪‬‬
‫‪Form‬‬
‫هذه الخصائص مرتبة أبجديا ما عدا الخاصية ‪Name‬‬ ‫‪‬‬

‫‪‬عند تحديد الخاصية يتم عرض وصفها في مربع الوصف‬


‫‪‬عند تحديد األداة تظهر جميع خصائصها‬
‫‪‬عند تحديد أكثر من أداة تظهر الخصائص المشتركة بينهم فقط‬
‫‪‬لتحديد أكثر من أداة يتم تحديد األداة األولى ثم الضغط على مفتاح ‪ Ctrl‬ثم تحديد باقي األدوات األخرى‬
‫‪‬ضبط خصائص األدوات‬
‫‪ ‬أثناء التصميم ‪ -:‬كتابة القيمة – اختيار قيمة من عدة خيارات – ظهور نافذة الختيار قيمة‬
‫أثناء التشغيل (نافذة الـ ‪ -:)Code‬باستخدام الصيغة (القيمة المطلوبة = الخاصية‪.‬االسم البرمجي لألداة)‬ ‫‪‬‬

‫”موافق“ ‪= command1.caption‬‬ ‫ً‬


‫مثال زر األمر يأخذ القيمة موافق‬
‫أهم الخصائص‬
‫الخاصية‬ ‫عملها‬

‫‪NAME‬‬ ‫لتغيير االسم البرمجي لألداة (داخل البرنامج)‬


‫‪BACK COLOR‬‬ ‫لتغيير لون الخلفية‬
‫‪CAPTION‬‬ ‫لتغيير العنوان الظاهري‬
‫‪FONT‬‬ ‫لتغيير نوع وحجم الخط‬
‫‪FORE COLOR‬‬ ‫لتغيير لون الخط‬
‫‪HEIGHT‬‬ ‫لتغيير االرتفاع‬
‫‪LEFT‬‬ ‫لتحريك األداة من الطرف األيسر‬
‫‪TEXT‬‬ ‫إلدخال أو تعديل نص في األداة‬
‫‪TOP‬‬ ‫لتحريك األداة من الطرف العلوي‬
‫‪WIDTH‬‬ ‫لتغيير العرض‬
‫‪VISIBLE‬‬ ‫إلظهار األداة عند القيمة = ‪ TRUE‬وإخفائها عندما = ‪FALSE‬‬
‫ه‪7‬و نافذة العم‪7‬ل والمكان الرئيس‪7‬ي الذي يت‪7‬م في‪7‬ه تص‪7‬ميم التط‪7‬بيقات البرمجي‪7‬ة وه‪7‬و واجهة‬ ‫نافذة النموذج (‪-: )FORM‬‬
‫المستخدم ‪USER INTER FACE‬‬
‫إضافة نموذج ‪Add Form‬‬
‫شريط القوائم‬ ‫من‬ ‫‪‬‬

‫نضغط على قائمة ‪ Project‬ثم أمر ‪Add Form‬‬


‫تظهر نافذة ‪ Add Form‬ثم نضغط‪ 7‬زر ‪Open‬‬
‫من شريط‪ 7‬األدوات‬ ‫‪‬‬

‫نضغط على الزر ‪Add Form‬‬


‫إزالة نموذج‬
‫من نافذة مستكشف المشروع ‪Project Explorer‬‬
‫نحدد النموذج المراد حذفه بالضغط بالزر األيمن ثم أمر ‪Remove Form‬‬
‫تحديد نافذة بدء التشغيل ‪Setting Startup Form‬‬
‫شريط القوائم‬ ‫من‬ ‫‪‬‬
‫من قائمة ‪ project‬ثم األمر ‪project name properties‬‬
‫من القائمة المنسدلة ‪ startup object‬ثم نحدد االسم البرمجي للنموذج ثم نضغط على الزر ‪OK‬‬
‫األحداث‬
‫الحدث هو فعل يقوم به المستخدم وينتج عنه رد فعل وهو عبارة عن إجراء معين يكتب على شكل تعليمات (كود) ضمن‬
‫إجراء ‪ Procedure‬يبداء بـ ‪ Sub‬وينتهي بـ ‪End sub‬‬
‫مالحظة ‪ -:‬بعض األحداث ال يكون المستخدم السبب في حدوثها مثل الحدث ‪ timer‬يحدث كل فترة زمنية معينة واألحداث‬
‫عبارة إجراءات اسمائها تتبع الصيغة‬
‫الحدث _ اسم الكائن (األداة)‬
‫‪) (Form1_click‬‬ ‫مثل‬
‫‪) (Command1_click‬‬
‫‪) (Form1_Load‬‬
‫أهم األحداث‬
‫الحدث‬ ‫عملها‬ ‫متى تحدث‬

‫‪CLICK‬‬ ‫نقرة واحدة‬ ‫نقر المستخدم في األداة نقرة واحدة‬


‫‪DB CLICK‬‬ ‫نقر مزدوج‬ ‫نقر مزدوج على األداة‬
‫‪MOUSE MOVE‬‬ ‫تحريك مؤشر الفأرة‬ ‫تحريك مؤشر الفأرة على األداة‬

‫‪MOUSE DOWN‬‬ ‫زر الفأرة ألسفل‬ ‫زر الفأرة ألسفل‬


‫‪MOUSE UP‬‬ ‫زر الفأرة ألعلى‬ ‫إفالت زر الفأرة‬
‫‪DRAG DROP‬‬ ‫نقل‬ ‫عند نقل األداة من مكان ألخر‬

‫‪KEY PRESS‬‬ ‫ضغط حرف‬ ‫عند الضغط على حرف من لوحة المفاتيح‬

‫‪KEY DOWN‬‬ ‫المفتاح ألسفل‬ ‫الضغط على مفتاح من لوحة المفاتيح‬

‫‪KEYUP‬‬ ‫المفتاح ألعلى‬ ‫إنهاء الضغط على مفتاح من لوحة المفاتيح‬


‫الطرق (الوظائف) ‪-:‬‬

‫عبارة عن وظائف جاهزة ترتبط بكينونة األداة ومبنية داخل األداة تؤدي وظيفة معينة متعلقة بعمل وسلوك األداة‬
‫وتستدعى باسم األداة مباشرة‬
‫اسم الوظيفة‪.‬اسم األداة مثل ‪Form1.Show‬‬ ‫صيغتها العامة‬
‫الفرق بين الخاصية والوظيفة‬

‫الخاصية ‪ -:‬هي قيمة معينة ألداة التحكم تميزها عن باقي األدوات مثل العنوان والطول والعرض ولون الخلفية ‪...‬الخ‬
‫الوظيفة ‪ -:‬هي عبارة عن وظ‪7‬يفة مبنية في األداة ويتم استدعائها من اسم األداة مباشرة‬
‫قواعد تسمية األدوات‬
‫‪Command‬‬ ‫‪cmd‬‬
‫‪Text‬‬ ‫‪txt‬‬
‫‪Label‬‬ ‫‪lbl‬‬
‫‪Form‬‬ ‫‪frm‬‬
‫أهم الخصائص واألحداث والطرق المشتركة بين النموذج وبعض أدوات التحكم‬

‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عمله‬ ‫عملها الطريقة‬


‫‪Name‬‬ ‫‪ Click‬االسم البرمجي لألداة‬ ‫سحب ‪ Drag‬ضغطة على األداة‬
‫‪Back Color‬‬ ‫‪ Db Click‬تغيير لون الخلفية‬ ‫تحريك ‪ Move‬ضغط مزدوج على األداة‬
‫‪Caption‬‬ ‫إظهار ‪ Show‬تمرير مؤشر الفأرة على األداة ‪ Mouse Move‬تغيير العنوان‬
‫‪Font‬‬ ‫‪ Mouse Down‬تغيير نوع الخط‬ ‫إخفاء ‪ Hide‬ضغط زر الفأرة على األداة‬
‫‪Fore Color‬‬ ‫‪ Mouse up‬تغيير لون الخط‬ ‫عند إفالت زر الفأرة‬
‫‪Height‬‬ ‫‪ Drag Drop‬لتغيير طول األداة‬ ‫سحب األداة وإفالتها (نقل)‬
‫‪Left‬‬ ‫‪ Key press‬المحاذاة لليسار‬ ‫الضغط على مفتاح حرف‬
‫‪Text‬‬ ‫‪ Key Down‬تعيين نص في صندوق النص‬ ‫لحظة الضغط على المفتاح‬
‫‪Top‬‬ ‫‪ Key up‬المحاذاة لألعلى‬ ‫لحظة إنهاء الضغط على المفتاح‬
‫‪Width‬‬ ‫لتغيير عرض األداة‬
‫‪ =True‬إ‪7‬ظه‪7‬ار ا‪77‬ألداة – ‪ =False‬إ‪7‬خف‪7‬اء‬
‫‪Visible‬‬
‫ا‪77‬ألداة‬
‫أهم الخصائص واألحداث والطرق للنموذج ‪Form‬‬

‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عمله‬ ‫الطريقة‬ ‫عملها‬


‫‪Name‬‬ ‫تحديد االسم البرمجي للنموذج‬ ‫مسح ما هو مطبوع على النموذج ‪Cls‬‬

‫رسم خط مستقيم أو مربع أو‬


‫‪Caption‬‬ ‫تغيير عنوان النموذج‬ ‫‪Line‬‬
‫مستطيل‬
‫معظمها مشتركة‬
‫تحميل‬
‫تغيير لون خلفية النموذج‬ ‫األدوات‬ ‫مع‬ ‫‪Circle‬‬ ‫رسم دائرة‬
‫‪Back Color‬‬ ‫النموذج‬
‫األخرى وأهمها‬
‫‪Load‬‬
‫‪Picture‬‬ ‫وضع صورة على الخلفية‬ ‫‪Move‬‬ ‫حركة للنموذج‬

‫‪Right to Left‬‬ ‫محاذاة النموذج إلى اليمين‬ ‫‪Show‬‬ ‫إظهار النموذج‬


‫أهم الخصائص واألحداث والطرق ألداة العنوان ‪Label‬‬

‫الطريق‬
‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عمله‬ ‫عملها‬
‫ة‬
‫‪Name‬‬ ‫‪ Db Click‬تحديد االسم البرمجي‬ ‫سحب ‪ Drag‬ضغط مزدوج‬

‫‪Caption‬‬ ‫‪ Drag Drop‬عنوان األداة‬ ‫‪ Move‬سحب وإفالت‬


‫تحريك‬

‫‪ Transparent=0‬ال تسمح بتغيير لون الخلفية ‪Back‬‬ ‫سحب أداة أخرى فوق‬
‫‪Back Style‬‬ ‫‪Drag Over‬‬
‫‪Color‬‬ ‫األداة‬

‫‪Auto size‬‬ ‫‪ Change‬تغيير الحجم ليتالءم مع حجم النص‬ ‫تغيير العنوان أثناء التنفيذ‬

‫‪Word‬‬
‫يسمح بالتفاف النص‬
‫‪wrap‬‬

‫‪Alignment‬‬ ‫تحديد محاذاة النص‬


‫أهم الخصائص واألحداث والطرق ألداة مربع النص ‪Text B0x‬‬

‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عمله‬ ‫عملها الطريقة‬


‫‪Name‬‬ ‫تحديد االسم البرمجي‬
‫تشبه األدوات‬
‫‪Text‬‬ ‫تعيين نص‬
‫األخرى‬
‫‪Multi line‬‬ ‫إلدخال عدة سطور عندما = ‪True‬‬ ‫يحد ث عند تغيير النص‬
‫وأهمها‬ ‫مع الدالة‬
‫‪Change‬‬ ‫قليلة‬
‫‪Trim‬‬
‫‪Locked‬‬ ‫= ‪ true‬عرض النص بدون تعديل‬ ‫وأهمها‬
‫إللغاء‬
‫‪Scrol Bars‬‬ ‫عرض وإخفاء أشرطة التمرير‬ ‫‪Set‬‬
‫‪focus‬‬ ‫الفراغا‬
‫تحديد طول النص وعندما = ‪ 0‬ال حدود لطول‬ ‫فقدان التركيز مع إرغام‬ ‫ت‬
‫‪Max Length‬‬ ‫النص‬ ‫‪Lost‬‬ ‫‪focus‬‬ ‫مؤشر الكتابة على ملء‬
‫‪Pass word‬‬ ‫صندوق النص‬
‫‪chr‬‬ ‫لتحويل الحروف إلى نجمة عند اإلدخال‬
‫أهم الخصائص واألحداث والطرق ألداة األمر ‪Command‬‬

‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عمله‬ ‫عملها الطريقة‬

‫نقر مفرد‬ ‫سحب‬


‫‪Name‬‬ ‫‪ Click‬تحديد االسم البرمجي‬ ‫‪Drag‬‬
‫‪Mouse‬‬ ‫تمرير مؤشر الفأرة فوق‬
‫تحريك‬
‫‪Caption‬‬ ‫‪ Over‬عنوان األداة‬ ‫‪ Move‬الزر‬
‫تفعيل التركيز‬
‫‪Style‬‬ ‫‪ Graphical = Got focus‬يسمح بتغيير لون الخلفية ‪Black Color‬‬

‫فقدان التركيز‬
‫‪Picture‬‬ ‫‪ Lost focus‬إدراج صورة على خلفية زر األوامر‬
‫‪Visible‬‬ ‫= ‪ True‬إظهار الزر ‪ False = -‬إخفاء الزر‬
‫= ‪ True‬تجعل األداة متاحة ‪ false = -‬تجعل األداة غير‬
‫‪Enabled‬‬ ‫متاحة‬
set focus ‫ مع الطريقة‬lost focus ‫مثال على استخدام الحدث‬
‫إرغام مؤشر الكتابة ملء صندوق النص‬
FORM × Private Sub Text1 _Lost Focus()
If trim(Text1.text)="" Then
Text1.set focus
End Sub
‫ تلغي وجود الفراغات‬trim ‫ الدالة‬-: ‫مالحظة‬

‫مثال على توجيه التركيز على أزرار األوامر‬


) ( Private Sub Form _Load
Form1.Show
Command2.SetFocus
FORM ×
End Sub
First

Secand
‫تطبيق عملي‬
‫‪FORM‬‬ ‫×‬ ‫‪FORM‬‬ ‫×‬
‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬

‫‪Text1‬‬
‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫االسم‬ ‫‪Label1‬‬
‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪. . . . . . .. . . . . . .. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪. . . . . . .. . . . . . .‬‬
‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪.. . . . . . .. . . . . . .. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬

‫اطبع‬ ‫‪Label2‬‬ ‫‪Command1‬‬ ‫‪. . . . . . .. . . . . .‬‬


‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪.. . . . . . .. . . . . . .. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪. . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . .‬‬
‫‪,,, .‬‬
‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬

‫‪FORM‬‬ ‫×‬ ‫) ( ‪Private Sub cmdfinish _ Click‬‬


‫‪” + txtName.Text‬مرحبا“ = ‪lblwelcome.Caption‬‬
‫على عبد الله‬ ‫االسم‬ ‫‪End Sub‬‬
‫‪ Label1‬ا‪77‬لعنوا‪7‬ن ا‪77‬السم‪ 7‬منخ‪7‬اصية ‪Caption‬‬
‫مرحبا على عبد الله‬ ‫اطبع‬ ‫‪ Text1‬إل‪7‬دخا‪77‬لا‪77‬السم‪ 7‬وا‪77‬السم‪ 7‬ا‪77‬لبرمجي‪txtname‬‬
‫‪ Command1‬ا‪77‬لعنوا‪7‬نا‪7‬طبع‪ 7‬منخ‪7‬اصية ‪Caption‬‬
‫واالسم البرمجي ‪cmdfinish‬‬
‫‪ Label2‬ي‪77‬طبع‪ 7‬ف‪777‬يه‪ 7‬مرحبا مع‪ 7‬ا‪77‬السم‪ 7‬ف‪777‬يمربع‪ 7‬ا‪77‬لنصوا‪77‬السم‪ 7‬ا‪77‬لبرمجي‪lblwelcome‬‬
‫حل تمارين الكتاب‬
‫جـ‪ / 1‬ه‪7‬ي نوع م‪7‬ن البرمج‪7‬ة يعتم‪7‬د عل‪7‬ى مجموع‪7‬ة م‪7‬ن األدوات الت‪7‬ي تعم‪7‬ل عل‪7‬ى تس‪7‬هيل وسرعة إنجاز‬
‫التطبيقات البرمجية‬
‫جـ‪ / 2‬خطوات حل المشكلة‬
‫تعري‪7‬ف المشكل‪7‬ة – كتاب‪7‬ة الخوارزمي‪7‬ة – تحدي‪7‬د األدوات – تنفي‪7‬ذ الح‪7‬ل بأوام‪7‬ر لغ‪7‬ة البيس‪7‬ك المرئي –‬
‫المراجعة والتصحيح‬
‫جـ‪ / 3‬نضغ‪7‬ط عل‪7‬ى قائم‪7‬ة ‪ start‬ث‪7‬م ‪ All program‬ث‪7‬م ‪ Micro soft Visual Studio‬ثم ‪Micro‬‬
‫‪soft visual basic 6‬‬
‫تظه‪7‬ر نافذة ‪ New project‬نختار منه‪7‬ا نوع المشروع ‪ Standard EXE‬ث‪7‬م نضغ‪7‬ط على زر ‪Open‬‬
‫جـ‪ / 4‬شري‪7‬ط أدوات التحك‪7‬م – شري‪7‬ط القوائ‪7‬م – شري‪7‬ط األدوات – نافذة الخص‪7‬ائص – نافذة مستكشف‬
‫المشروع – نافذة شكل النموذج – نافذة النموذج‬
‫جـ‪ / 5‬إلعداد نموذج عنوانه البرمجة بلغة البيسك المرئي‬
‫من قائمة ‪ Project‬نختار أمر ‪ Add Form‬تظهر نافذة ‪ Add Form‬نختار ‪Form‬‬
‫البرمجة بلغة البيسك المرئي ‪Caption‬‬
‫من نافذة الخصائص نغير عنوان النموذج من خاصية العنوان ‪Caption‬‬
‫"البرمجة بلغة البيسك المرئي‪" =Form1.Caption‬‬ ‫أو من نافذة الكود‬
‫جـ‪ / 6‬اإلطار يستخدم لتجميع مجموعة من األدوات أما النموذج فهو الواجهة التي يتم تصميمها لتطبيق برمجي‬
‫جـ‪ / 7‬هي مجموعة من القيم (المواصفات) لكل أداة بحيث تميزها عن باقي األدوات من ناحية االسم البرمجي أو العنوان أو لون‬
‫الخلفية أو الطول ‪...‬الخ‬
‫جـ‪ / 8‬الحدث هو فعل يقوم به المستخدم وينتج عنه رد فعل معين مثل تنفيذ إجراء معين مكتوب على شكل تعليمات (كود) ومنها‬
‫األحداث التالية‬
‫‪click – Db click – key press – Drag Drop – mouse move‬‬
‫جـ‪ / 9‬هي وظائف جاهزة ترتبط بكينونة األداة ومبنية باألداة وتستدعى مباشرة باالسم البرمجي لألداة ومنها ‪Move – Show‬‬
‫‪– Hide - Drag‬‬
‫الباب الخامس‬
‫المصفوفات‬
‫في بعض التطبيقات قد نحتاج لتخزين مجموعة قيم ما وبالتالي سوف نستخدم مجموعة من المتغيرات لتمثيل هذه القيم ‪.‬‬
‫لتغلب على ذلك تُستخدم المصفوفة الستخدام متغير واحد لتمثيل مجموعة من القيم‬
‫تعريف المصفوفة ‪ -:‬هي عبارة عن مجموعة متجاورة من المواقع في الذاكرة تحتوي على عناصر متجانسة من نفس‬
‫النوع‬
‫أنواع المصفوفات‬
‫مصفوفة ذات البعد الواحد ‪-:‬‬
‫تتكون من صف واحد أو عمود واحد وتحدد عدد العناصر باستخدام دليل فهرس واحد‬
‫جملة إعالن مصفوفة ذات البعد الواحد‬
‫‪Dim array name (max value) as data type‬‬
‫جملة إعالن‬ ‫اسم المصفوفة‬ ‫عدد العناصر(دليل)‬ ‫نوع البيانات‬

‫تحديد مواقع العناصر‬


‫أوال ً طريقة اإلسناد المباشر‪-:‬‬
‫قيمة العنصر األول في الترتيب صـفر‬
‫قيمة العنصر الثاني في الترتيب واحد‬
‫مثال ‪ -:‬مصفوفة من (‪ )5‬عناصر لتخزين القيم التالية (‪)6 – 1 – 9 – 5 – 3‬‬
‫‪My array(0) = 3‬‬
‫‪My array(1) = 5‬‬
‫‪My array(2) = 9‬‬
‫‪My array(3) = 1‬‬
‫‪My array(4) = 6‬‬
‫ثانيا ‪ -:‬تحديد مواقع العناصر بدليل المصفوفة (استخدام دليل الدوران في الحلقات)‬
‫دليل الحلقة هو دليل المصفوفة أو فهرس المصفوفة ويمثل عدد عناصر المصفوفة‬
‫عدد العناصر وهو دليل المصفوفة الموقع األول = ‪0‬‬
‫‪  Dim array name (n) as data type ‬‬
‫‪ ‬‬
‫عدد العناصر وهو دليل المصفوفة الموقع األول = ‪0‬‬

‫مثال ‪ -:‬إلنشاء مصفوفة ‪ my array‬لتخزين بيانات رقمية صحية عدد عناصرها (‪)5‬‬
‫‪Dim my array (4) as integer‬‬
‫‪Dim array name (min value to max value) as‬‬
‫‪  data type‬‬
‫أصغر مدى‬ ‫إلى‬ ‫اكبر مدى‬

‫‪Dim my array (1 to 5) as integer‬‬


‫‪ ‬أمثلة ‪-:‬‬
‫إنشاء مصفوفة لتخزين (‪ )10‬قيم تصاعدية (‪ )my array‬وطباعتها‬
‫الحل ‪ :‬أوال ً تصميم النموذج‬
‫‪Cmdprint name‬‬
‫طباعة المصفوفة ‪caption‬‬
‫‪ ‬أو من نافذة الـ ‪code‬‬
‫‪)(Private sub command1 _load‬‬
‫"طباعة المصفوفة " ‪=Command1.caption‬‬
‫ثانيا ً ‪ -:‬كتابة الكود‬
‫في الجزء العام ‪general‬يتم فيه إعالن المصفوفة‬
‫‪Dim my array (9) as integer‬‬
‫في النموذج يتم إدخال العناصر بالضغط المزدوج في مكان فارغ على النموذج أو من نافذة الـ ‪ code‬في قائمة ‪ object‬نحدد الـ ‪form‬‬
‫)(‪Private sub form_load‬‬
‫‪For (i) = 0 to 9‬‬
‫‪My array(i) = i‬‬
‫‪Next i‬‬
‫‪End sub‬‬
‫في زر األمر طباعة المصفوفة بالضغط المزدوج على زر األمر أو من نافذة الـ ‪ code‬في قائمة ‪ object‬نحدد الـ ‪cmdprint‬‬
‫)( ‪Private sub cmdprint_click‬‬
‫‪For (i) = 0 to 9‬‬
‫)‪Print my array(i‬‬
‫‪Next I‬‬
‫‪End sub‬‬
‫مخرجات البرنامح طباعة قيم الدليل من ‪ 9 – 0‬عموديا ً‬
‫مالحظات هامة ‪-:‬‬
‫جملة الطباعة بدون فاصلة المخرجات تكون عموديا ً‬
‫جملة الطباعة بفاصلة عادية المخرجات تكون صف وبينها مسافة كلمة‬
‫جملة الطباعة بفاصلة منقوطة المخرجات تكون صف وبينها مسافة حرف واحد فقط‬
‫اكتب برنامج يقوم بـاآلتي تخزين (‪ )5‬عناصر في مصفوفة أحادية البعد‬
‫طباعة عناصر المصفوفة‬
‫البحث عن عنصر وطباعة جملة العنصر موجود عند وجوده وغير موجود عند عدم وجوده‬
‫الحل ‪ :‬أوال ً تصميم النموذج‬
‫‪Command1‬‬ ‫‪Command2‬‬ ‫اسم األداة ‪Command3‬‬
‫‪Caption‬‬ ‫‪Caption‬‬ ‫الخاصية ‪Caption‬‬
‫العنوان إدخال العناصر طباعة العناصر البحث عن عنصر‬
‫أسم المصفوفة (‪ )A‬وعدد العناصر (‪ )4‬ألنها تبدأ من (‪ )0‬ونوع العناصر صحيح‬

‫طباعة العناصر‬
‫البحث عن عنصر‬
‫ادخال العناصر‬
‫ثانيا ً كتابة الكود‬
‫في الجزء العام ‪ General‬نحجز عناصر المصفوفة‬
‫‪Dim A(4) as integer‬‬
‫نضغط ضغط مزدوج على الـ‪ Command1‬أو من قائمة ‪ Object‬نحدد ‪ Command1‬مع الحدث ‪Click‬ونكتب الكود التالي‬
‫)( ‪Private Sub Command1_click‬‬
‫‪For I = 0 to 4‬‬
‫)"‪A(i) = Inputbox ("Enter Element‬‬
‫هذا الكود إلدخال عناصر المصفوفة‬
‫‪Next I‬‬
‫‪End Sub‬‬
‫نضغط ضغط مزدوج على الـ‪ Command2‬أو من قائمة ‪ Object‬نحدد ‪ Command2‬مع الحدث ‪Click‬ونكتب الكود التالي‬
‫)( ‪Private Sub Command2_click‬‬
‫‪For I = 0 to 4‬‬
‫)‪Print A(i‬‬
‫هذا الكود لطباعة عناصر المصفوفة‬ ‫‪Next i‬‬
‫‪End Sub‬‬
‫نضغط ضغط مزدوج على الـ‪ Command3‬أو من قائمة ‪ Object‬نحدد ‪ Command3‬مع الحدث ‪Click‬ونكتب الكود التالي‬
‫)( ‪Private Sub Command3_click‬‬
‫‪Dim X As Integer‬‬
‫‪ Dim Check As Boolean‬حجز العنصر المراد البحث عنه في المصفوفة ونوعه صحيح مثل عناصر المصفوفة‬
‫حجز عنصرالكشف عن العنصر ونوعه منطقي‬
‫‪Check = False‬‬
‫عنصر الكشف يأخذ القيمة ‪ False‬وعند الكشف عن العنصر يأخذ القيمة ‪True‬‬
‫)"‪X= Inputbox("Enter Element‬‬
‫إدخال العنصر المراد البحث عنه باستخدام دالة صندوق اإلدخال‬
‫‪For I = 0 to 4‬‬
‫حلقة لمقارنة العنصر المدخل بكل عناصر المصفوفة التي أٌدخلت بزر إدخال عناصر المصفوفة‬
‫‪If A(i) = X Then‬‬
‫باستخدام الجملة الشرطية العنصر المدخل = عنصر من عناصر المصفوفة المدخلة‬ ‫‪Check = True‬‬ ‫البحث عن عنصر‬
‫في حالة تحقق الشرط إذن عنصر الكشف يأخذ القيمة ‪True‬‬
‫‪End if‬‬
‫‪Next I‬‬
‫‪If Check = True Then‬‬
‫” لاــعنصـر موـجود"‪Print‬‬
‫‪Else‬‬
‫الجملة الشرطية إذا عنصر الكشف أخذ القيمة ‪ True‬إذن أطبع العنصر موجود (تحقق الشرط)‬
‫“ لاــعنصـر غير مـوـجود" ‪Print‬‬
‫وإال أطبع العنصر غير موجود (عدم تحقق الشرط)‬ ‫‪End if‬‬
‫‪End Sub‬‬
‫المصفوفة ذات البعدين‬
‫تتكون مصفوفة ذات البعدين من اسم المصفوفة ودليلين (فهرسين) دليل للصفوف ودليل لألعمدة‬
‫جملة إعالن المصفوفة‬
‫جملة إعالن‬

‫‪Dim Array-Name ( Max-row value , Max Column value ) as Data‬‬


‫‪Type‬‬
‫أسم المصفوفة‬ ‫دليل الصفوف وهو عدد الصفوف‬ ‫دليل األعمدة وهو عدد األعمدة‬ ‫نوع عناصر المصفوفة‬

‫مثال ‪ -:‬إنشاء مصفوفة باسم ‪ Array‬تتكون من أربعة صفوف و أربعة أعمدة ونوع العناصر صحيح‬
‫جملة إعالن المصفوفة ودائما ً تكتب في الجزء العام ‪ General‬في نافذة الكود‬
‫‪Dim Array (3,3) as Integer‬‬
‫مالحظة ‪ -:‬يمكن تحديد أول صف وأخر صف في دليل الصفوف وكذلك األعمدة مثل‬
‫‪Dim Array (1 To 4, 1 To 4) as Integer‬‬
‫وبالتالي العنصر األول يكون موجود في الصف (‪ )1‬والعمود (‪ )1‬بدال ً من الصف (‪ )0‬والعمود (‪)0‬‬
‫حاصل ضرب عناصر الصف في عناصر األعمدة = عدد عناصر المصفوفة‬
‫‪ ‬‬
‫مثال ‪ -:‬اكتب برنامج يقوم بتخزين مجموع رقمي الصف مع العمود وطباعة المجموع ورقم الصف والعمود‬
‫طباعة المصفوفة‪ ‬‬
‫وذلك بإنشاء مصفوفة تحتوي على أربعة صفوف وأربعة أعمدة‬
‫أوال ً تصميم النموذج ‪ -:‬نضع على النموذج زر األمر ‪ Command1‬و من نافذة الخصائص طباعة المصفوفة ‪Caption‬‬
‫ثانيا ً كتابة الكود‬
‫في الجزء العام ‪ General‬نحجز مواقع المصفوفة‬
‫ناتج تنفيذ البرنامج‬
‫‪Dim myarray(3, 3) As Integer‬‬
‫في النموذج نضغط ضغط مزدوج على النموذج أو من قائمة‪ Object‬نحدد الـ‪ Form1‬ونكتب الكود‬
‫‪Private Sub Form_Load‬‬ ‫)(‬
‫‪For i = 0 To 3‬‬
‫‪For j = 0 To 3‬‬
‫‪My array(i, j) = i + j‬‬
‫‪Next j‬‬
‫حلقتي دوران األولى دليل الصفوف والثانية دليل األعمدة‬ ‫‪Next i‬‬
‫‪End Sub‬‬
‫جملة تخزين مجموع كل صف مع األعمدة داخل حلقتي الدوران‬
‫نضغط على زر األمر ‪ Command1‬ضغط مزدوج أو من قائمة‪ Object‬نحدد الـ ‪ Command1‬ونكتب الكود‬
‫‪Private Sub Command1_Click‬‬ ‫)(‬
‫‪For i = 0 To 3‬‬
‫‪For j = 0 To 3‬‬
‫)‪Print i; "+"; j; "="; myarray(i, j‬‬
‫جملة طباعة قيم دليل الصفوف وعالمة الجمع وقيم األعمدة و‬ ‫‪Next j‬‬
‫عالمة =وناتج جمع كل صف مع األعمدة داخل حلقتي الدوران‬
‫‪Next i‬‬
‫‪End Sub‬‬
‫الفصل السادس‬

‫اإلجراءات والدوال الفرعية ‪Procedures and Functions‬‬

‫لبناء مشروع متكام‪7‬ل يحتاج إل‪7‬ى تكرار مجموع‪7‬ة م‪7‬ن الجم‪7‬ل لتنفي‪7‬ذ وظيفة‬
‫معين‪7‬ة ف‪7‬ي أكث‪7‬ر م‪7‬ن موق‪7‬ع مم‪7‬ا يس‪7‬بب ضياع للوق‪7‬ت وص‪7‬عوبة ف‪7‬ي التعديل‬
‫فالتعدي‪7‬ل ف‪7‬ي جزء م‪7‬ن المشروع ق‪7‬د يتطل‪7‬ب التعدي‪7‬ل ف‪7‬ي أماك‪7‬ن عديدة من‬
‫المشروع لذل‪7‬ك لغ‪7‬ة البيس‪7‬ك تدع‪7‬م إمكاني‪7‬ة كتاب‪7‬ة برام‪7‬ج فرعي‪7‬ة لح‪7‬ل هذه المشكلة‬
‫بتقس‪7‬يم المشروع إل‪7‬ى أجزاء ك‪7‬ل جزء يقوم بوظيف‪7‬ة معين‪7‬ة ويت‪7‬م اس‪7‬تدعاؤها عند‬
‫الحاج‪7‬ة إليه‪7‬ا وهذا يوف‪7‬ر الوق‪7‬ت والجه‪7‬د وس‪7‬هولة التعدي‪7‬ل والتقلي‪7‬ل من تكرار‬
‫بعض الجمل‬
‫مالحظات هامـة حول كتابـة الـبرنامج الفرعـي أـو الدالة‬
‫يكت‪7‬ب ال‪7‬برنامج الفرع‪7‬ي ‪ sub‬أ‪7‬و ‪ Fun‬في الجزء ‪General‬‬
‫للنموذج ‪ Form‬وبالتال‪7‬ي يُس‪7‬تدعى ال‪7‬برنامج م‪7‬ن أ‪7‬ي أداة على‬
‫النموذج مع الجملة ‪ Private‬ويعرف بالبرنامج الخاص‬

‫يُكت‪7‬ب ف‪7‬ي الجزء الـ ‪ Module‬م‪7‬ع كتاب‪7‬ة جمل‪7‬ة ‪ Public‬ويُستدعى‬


‫م‪7‬ن أ‪7‬ي أداة أ‪7‬و نموذج م‪7‬ن المشروع بالكام‪7‬ل ويعرف بالبرنامج العام‬
‫)‪Subroutines :- (SUB‬‬ ‫اإلجراءات الفرعية (الروتينات)‬
‫برامـج مسـتقلة تؤدي وظيفـة معينـة ويمكـن اسـتدعاؤها مـن الـبرنامج الرئيسـي أـو مـن أـي برنامـج فرعي‬
‫أخر‬

‫الصيغة العامة ‪-:‬‬


‫)‪Private sub name (par1 as type1 ,par2 as type2 ,…..par n as type n‬‬

‫اــرـعي‬
‫لفـ‬ ‫‪ Sub name‬اـسمـ اـإلجرـاء‬
‫بــــمـتراـتوـهي معاـمـالت مـدـخـالتوـمـخرجات‬
‫اراـ‬ ‫‪Par1 – par2‬‬
‫يانات لاــمعاـمـالت‬
‫بــــ‬ ‫‪ Type1 – Type2‬أـنواـع‬
‫مالحظات هامة ‪-:‬‬

‫بارامترات البرنامج نوع ‪ SUB‬هي متغيرات للمدخالت والمخرجات‬ ‫‪‬‬


‫يجب إدخال المتغيرات في جملة اإلستدعاء بنفس الترتيب في جملة اإلعالن‬ ‫‪‬‬
‫ليس من الضروري أن تتشابه أسماء المتغيرات في جملة اإلعالن وجملة اإلستدعاء و‬ ‫‪‬‬
‫لكن ال بد أن يكونوا من نفس النوع‬
‫يمكن للبرنامج الفرعي أن يعيد قيمة أو أكثر‬ ‫‪‬‬
‫يُستدعى اإلجراء الفرعي ‪ sub‬بجملة ‪ call‬أو باسم اإلجراء مباشرة وال يذكر نوع‬ ‫‪‬‬
‫بيانات المعامالت في االستدعاء‬
‫تبدأ بـ ‪ SUB‬وتنتهي بـ ‪END SUB‬‬ ‫‪‬‬
‫أنواع اإلجراء الفرعي ‪Sub‬‬

‫بدون معامالت تنفـذ مباشرة بالنقـر علـى زر األمـر من خالل الحدث‬ ‫منهـا‬ ‫‪‬‬

‫‪ click‬أو ‪Dbclick‬‬
‫برامج عند تنفيذها يظهر مربع حوار باستخدام جملة ‪MSGBOX‬‬ ‫‪‬‬

‫برامج لها معامالت مدخالت ومخرجات وتعيد قيمة أو أكثر‬ ‫‪‬‬


Sub ‫أنواع اإلجراء الفرعي‬
Dbclick ‫ أو‬click ‫بدون معامالت تنفذ مباشرة بالنقر على زر األمر من خالل الحدث‬ ‫منها‬ 

Private Sub cmdsum_Click()


Dim V1 As String
Dim V2 As String
Dim V3 As String
Dim sum As Integer
V1 = Text1.Text
V2 = Text2.Text
sum = CInt(V1) + CInt(V2)
V3 = CStr(sum)
Text3.Text = V3
End Sub
MSGBOX ‫عند تنفيذها يظهر مربع حوار باستخدام جملة‬ ‫برامج‬ 

Private Sub constructMessage(V As Integer)


MsgBox "value of v is =" & V
End Sub

Private Sub Form_Load()


V = InputBox("(v) ÇÏÎá ÞíãÉ")
constructMessage (V)
End Sub
‫برامج لها معامالت مدخالت ومخرجات وتعيد قيمة أو أكثر‬
Sub calc(x, y, s1, s2, s3 As Integer, s4 As String)
s1 = x + y
s2 = x - y
s3 = x * y
s4 = x / y
)(Private Sub Command1_Click
Dim v1, v2 As Integer
Dim s1, s2, s3 As Integer
Dim s4 As Single
v1 = Val(Text1.Text)
v2 = Val(Text2.Text)
Call calc(v1, v2, s1, s2, s3, s4)
Print s1, s2, s3, s4
End Sub
‫الوظيفية (دوال المستخدم) ‪Function‬‬
‫‪:-‬الصيغة العامة‬
‫‪Private Function Fun-Name (par1 as type,…..par n as type n) as fun type‬‬

‫ب‪777‬رنامج‪ 7‬ف‪777‬رعين‪77‬وع ا‪77‬لدا‪77‬لة ‪Function‬‬


‫ا‪7‬سم‪ 7‬ا‪77‬لدا‪77‬لة ‪Fun-Name‬‬
‫مع‪7‬امالتعبارة عنمتغيرا‪7‬تل‪77‬لمدخالت‪Par1 as type‬‬
‫ن‪77‬وع ا‪77‬لبياناتا‪77‬لتيت‪777‬عيدها ا‪77‬لدا‪77‬لة ‪As Fun type‬‬
‫مالحظات هامة ‪-:‬‬
‫جميع معامالت الدالة مدخالت‬ ‫‪‬‬
‫عدد المعامالت في جملة اإلعالن يساوي عدد المعامالت في جملة‬ ‫‪‬‬
‫اإلستدعاء‬
‫مخرجات الدالة قيمة واحدة ترجع في اسم الدالة ويحدد نوع الدالة ‪as‬‬ ‫‪‬‬
‫‪ fun type‬وفي حالة عدم ذكر نوعها تعتبرمن النوع المرن‬
‫تستدعى مباشرة باسم الدالة‬‫ُ‬ ‫‪‬‬
‫تبدأ بـ ‪ Fnction‬وتنتهي بـ ‪End Function‬‬ ‫‪‬‬
‫يمكن إنهاء الدالة بـ ‪Exit Fuction‬‬ ‫‪‬‬
‫الدوال الجاهزة ‪ -:‬هي دوال ُجهزت مع اللغة ويتم استدعاؤها مباشرة دون كتابة برامجها ومنها‬

‫الدوال الرياضية ‪Math Functions‬‬

‫)‪ -: Sqr (x‬إليجاد الجذر التربيعي للعدد‬ ‫الدالة‬ ‫‪‬‬

‫الدالة )‪ -: Abs (x‬إليجاد القيمة المطلقة للعدد‬ ‫‪‬‬

‫الدالة )‪ -: Int (x‬لحذف الجزء العشري‬ ‫‪‬‬

‫الدالة )‪ -: Log (x‬اللوغاريتم العشري للعدد‬ ‫‪‬‬

‫الدالة )‪ -: Sin (x‬إليجاد جيب الزاوية‬ ‫‪‬‬

‫الدالة )‪ -: Cos (x‬إليجاد جيب تمام الزاوية‬ ‫‪‬‬

‫الدالة )‪ -: Tan (x‬إليجاد ظل الزاوية‬ ‫‪‬‬


‫الدوال والجمل الحرفية‬
‫)‪ -: Len (string‬إليجاد طول النص (عدد الحروف)‬ ‫الدالة‬ ‫‪‬‬

‫)‪ -: Trim (String‬لمحو المسافة من بداية ونهاية النص‬ ‫الدالة‬ ‫‪‬‬

‫)‪ -: L Trim (String‬إللغاء المسافة قي بداية النص‬ ‫الدالة‬ ‫‪‬‬

‫‪‬الدالة )‪ -: R Trim (String‬إللغاء المسافة قي نهاية النص‬


‫)‪ -: Left (String,L‬إلعادة عدد معين من الحروف من بداية النص‬ ‫الدالة‬ ‫‪‬‬

‫)‪ -: Right (String,L‬إلعادة عدد معين من الحروف من نهاية النص‬ ‫الدالة‬ ‫‪‬‬

‫)‪ -: Mid(String,S,L‬إلرجاع عدد معين من الحروف ومن موقع محدد‬ ‫الدالة‬ ‫‪‬‬

‫‪ Mid(String,S) :‬في حالة عدم تحديد طول النص المراد يعاد النص من الموقع المحدد إلى نهاية النص‬ ‫مالحظة‬ ‫‪‬‬

‫(‪ -:Chr(Number‬ما يقابل القيمة في جدول ‪ASCII‬‬ ‫الدالة‬ ‫‪‬‬

‫)‪ -: Str(Number‬لتحويل الرقم إلى نص‬ ‫الدالة‬ ‫‪‬‬

‫)‪ -: Val(String‬لتحويل النص إلى رقم‬ ‫الدالة‬ ‫‪‬‬


‫دوال التاريخ والوقت ‪Date & Time‬‬
‫‪ -: Date value‬تعطي التاريخ الحالى‬ ‫الدالة‬ ‫‪‬‬

‫الدالة ‪ -: Time value‬تعطى الوقت الحال‬ ‫‪‬‬

‫الدالة ‪ -: Weekday‬تعطي رقم اليوم‬ ‫‪‬‬

‫الدالة ‪ -:Format‬لتنسيق صيغة التاريخ‬ ‫‪‬‬

‫الدالة ‪ -: Year‬تعطي قيمة السنة من تاريخ‬ ‫‪‬‬

‫الدالة ‪ -: Month‬تعطي قيمة الشهر من تاريخ‬ ‫‪‬‬

‫الدالة ‪ -: Day‬تعطي قيمة اليوم من تاريخ‬ ‫‪‬‬


‫اإلطار ‪Frame‬‬
‫يشبه النموذج أو صندوق‪ 7‬الصور يعمل كحاوية لضم العناصر المرتبطة منطقيا ً أو وظيفيا ً‬
‫عادة صناديق التحقق أو االختيار‬ ‫تحوي‬ ‫‪‬‬

‫الموجودة داخل اإلطار تعتبر كتلة واحدة تتحرك مع بعضها عند تحريك اإلطار‬ ‫العناصر‬ ‫‪‬‬

‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عمله‬ ‫الطريقة‬ ‫عملها‬


‫‪Name‬‬ ‫‪Click‬االسم البرمجي‬ ‫‪ Move‬نقرة واحدة‬ ‫تحريك األداة‬
‫‪Backcolor‬‬ ‫‪ Dbl click‬لتغيير لون الخلفية‬ ‫إعادة رسم األداة عند نغيير الخصائص ‪ Refresh‬نقر مزدوج‬
‫‪Bordestyle‬‬ ‫سحب وإفالت ‪ Drag Drop‬لتغيير شكل اإلطار‬
‫‪Caption‬‬ ‫لعنوان اإلطار‬
‫‪Enable‬‬ ‫لجعل اإلطار متاح = ‪true‬‬
‫‪Font‬‬ ‫لتحديد نوع الخط‬
‫‪Forecolor‬‬ ‫لتغيير لون الخط‬
‫‪Right to Left‬‬ ‫لجعل عنوان اإلطار‬
‫‪Visible‬‬ ‫إلظهار أو إخفاء اإلطار أثناء التنفيذ‬
‫صناديق‪ 7‬التحقق‪( 7‬االحتيار المتعدد) ‪Check Boxes‬‬
‫ُتس‪7‬تخدم إلعطاء مس‪7‬تخدم ال‪7‬برنامج مجموع‪7‬ة خيارات ليختار المس‪7‬تخدم خيار أ‪7‬و أكث‪7‬ر ف‪7‬ي نف‪7‬س الوق‪7‬ت توض‪7‬ع ف‪7‬ي إطار واحد‬
‫تحت عنوان واحد هو عنوان اإلطار‬
‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عمله‬ ‫الطريقة‬ ‫عملها‬
‫‪Caption‬‬ ‫لعنوان الصندوق‬ ‫‪Move‬‬ ‫تحريك الزر‬
‫لتحديد الصندوق غير مؤشر عندما = ‪0‬‬ ‫‪Refresh‬‬ ‫إعادة رسم الزر مع تغيير الخصائص‬
‫لتحديد الصندوق مؤشر عندما = ‪1‬‬ ‫‪SetFocus‬‬ ‫توجيه التركيز‬
‫‪Value‬‬
‫لتحديد الصندوق مؤشر جزئيا ُ عندما = ‪2‬‬ ‫لتنفيذ عملية معينة‬
‫ويتم تحديدها أثناء التصميم أو التنفيذ‬ ‫‪Click‬‬ ‫على‬ ‫النقر‬ ‫عند‬
‫الصندوق‬
‫‪Picture‬‬ ‫إلضافة صورة على خلفية الصندوق‬
‫عندما = ‪ standard0‬ال تسمح بتغيير الخلفية‬
‫‪Style‬‬
‫عندما = ‪ Graphicl1‬تسمح بتغيير الخلفية‬
‫‪Downpicture‬‬ ‫إلضافة صورة على خلفية الصندوق أثناء التنفيذ‬

‫أزرار الخيارات ‪Option Radio Buttons‬‬


‫ُ‬
‫ت ستخدم الختيار خيار واحد من مجموعة خيارات فعند تأشير زر يُلغى تأشير األزرار األخرى‬
‫لها نفس خصائص وأحدث وط‪7‬رق صناديق االختيار ما عدا خاصية ‪ Value‬تأخذ القيمة ‪ True‬أو ‪False‬‬
‫صندوق القائمة ‪List Box‬‬
‫لعرض مجموعة من الخيارات دفعة واحدة ليختار المستخدم خيار واحد فقط ويتم كتابة الخيارات أثناء كتابة البرنامج أو أثناء التنفيذ‬

‫الخاصية‬ ‫عملها‬ ‫الحدث‬ ‫عملها‬ ‫الطريقة‬ ‫عملها‬


‫‪ Dblclick‬لتحديد عدد األعمدة‬ ‫‪ Add Item‬نقر مزدوج‪7‬‬ ‫إلضافة عنصر إلى القائمة‬
‫= ‪ 0‬عرض عمود واحد مع شريط تمرير عمودي‬ ‫‪Click‬‬ ‫نقرة‬ ‫‪Clear‬‬ ‫مسح جميع العناصر‬
‫‪Colmns‬‬
‫= ‪ 1‬عرض عمود واحد مع شريط تمرير أفقي‬ ‫‪Drag‬‬ ‫‪Over‬‬ ‫فوقها‬ ‫أداة‬ ‫تمرير‬ ‫‪n))Reove Item‬‬ ‫حذف عنصر رقمه ‪n‬‬
‫= ‪ 2‬عرض عمودين مع شريط تمرير أفقي‬
‫)‪List (n‬‬ ‫لتحديد قيمة عنصر معين حسب قيمة ‪n‬‬
‫‪List Count‬‬ ‫لتحديد عدد عناصر القائمة‬
‫‪List index‬‬ ‫للحصول على رقم العنصر المختار‬
‫‪Multi select‬‬ ‫تسمح باختيار أكثر من عنصر‬
‫‪Sorted‬‬ ‫لعرض القائمة في ترتيب أبجدي‬
‫الصندوق المركب ‪ ،‬قائمة السرد ‪ ،‬القائمة المنسدلة ‪Combo Box‬‬
‫يجمع بين مزايا صندوق النص وصندوق القائمة ويتيح إمكانية تغيير العنصر مباشرة أثناء التنفيذ‬
‫لها نفس خصائص وأحداث وطرق صندوق القائمة باإلضافة إلى خاصية ‪ Style‬واألحداث التي تعمل مع الخاصية ‪Style‬‬

‫الخاصية‬ ‫قيمة الخاصية‬ ‫عملها‬

‫‪Drop Down Combo = 0‬‬ ‫يشبه صندوق النص مع سهم لألسفل على اليمين‬
‫‪Style‬‬ ‫‪simple Combo= 1‬‬ ‫عرض العناصر بدون السهم ويمكن االختيار والتغيير‬

‫‪Drop Down List = 2‬‬ ‫يشبه صندوق النص وبه سهم وال يسمح بالتغيير المباشر‬

‫الحدث‬ ‫عمله‬
‫‪Drop Down‬‬ ‫سحب لألسفل مع القيمة ‪ 2 ، 0‬للخاصية ‪Style‬‬
‫‪Change‬‬ ‫يعمل مع القيمة ‪ 1 ، 0‬للخاصية ‪Style‬‬
‫‪Dbl Click‬‬ ‫يعمل مع القيمة ‪ 0‬للخاصية ‪Style‬‬
‫برنامج من النوع ‪SUB‬‬
‫مثال ‪-:‬‬
‫اكتب برنامج فرعي لحساب مساحة المستطيل‬
‫الحل ‪ -:‬نحدد المدخالت والمخرجات‬
‫إليجاد مساحة المستطيل الطول ‪ – L‬العرض ‪ – W‬المساحة ‪A‬‬
‫المساحة = الطول × العرض بمعنى ‪A= L*W‬‬
‫اسم البرنامج الفرعي ‪area‬‬
‫ للنموذج نكتب جملة اإلعالن‬General ‫في الجزء الـ‬
Sub area (L,W,A as integer)
A=L*W
End sub
‫في جملة اإلستدعاء‬
) ( Private sub form _ Load
L= 3
W=4
Call area (L,W,A)
Print A
End sub
‫برنامج من النوع الدالة‬
‫مثال ‪-:‬‬
‫باستخدام الدالة اكتب برنامج لحساب مساحة المستطيل‬
‫الحل ‪ -:‬نحدد المدخالت والمخرجات‬
‫إليجاد مساحة المستطيل الطول ‪ – L‬العرض ‪ – W‬المساحة ‪A‬‬
‫المساحة = الطول × العرض بمعنى ‪A= L*W‬‬
‫اسم البرنامج الفرعي ‪area‬‬
‫ للنموذج نكتب جملة اإلعالن‬General ‫في الجزء الـ‬
function area (L,W, as integer) as integer
area=L*W
End function
‫في جملة اإلستدعاء‬
) ( Private sub form _ Load
L= 3
W=4
area (L,W)
Print area
End function
‫برنامج من نوع الدالة ‪Function‬‬
‫برنامج لحساب الضريبة ‪ % 23‬على إجمالي الدخل‬
‫الحل‬
‫إجمالي الدخل ‪Income‬‬
‫الضريبة ‪tax‬‬
‫صافي الدخل ‪net‬‬
‫جملة اإلعالن في الجزء الـ‪General‬‬
‫اسم البرنامج ‪taxnet‬‬
‫)‪Sub taxnet (income,tax,net‬‬
‫‪Tax = 0.23*income‬‬
‫‪Net = income - tax‬‬
‫جملة اإلستدعاء‬
)( Private sub form _ Load
)”“( Income = inputbox
Call taxnet(income,tax,net)
Text1.text = income
Text2.text = tax
Text3.text = net

You might also like