دروس : تعلم فيجوال بيسك6 من البداية
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله...نبدا في هذا الموضوع ساسلة من الدروس في لغة البرمجة Visual Basic تبدأمن نقطة البداية للمبتدئين.
الدرس الأول : التعرف على واجه البرنامج و بعض الخصائص:
الدرس الثاني : الخصـــائـــص
الدرس الثالث : الكــــــود و التعامــل معــه :
درس 4 : تطبيقات متقدمة على الكـــود:
درس5:جعل البرنامج جاهزا ليعمل خارج الجهاز:
الدرس السادس : القوائـــــم :
الدرس 7 : ملفات الocx و التعامل معها :
الدرس 8 : التعامل مع الListو أشباهها:
الدرس 9 : الجملة الشرطية If...Then
الدرس 10 : التعامل مع المسارApp Path :
الدرس11: المتغيرات و الثوابت و المعاملات :القسم الأول
الدرس11: المتغيرات و الثوابت و المعاملات : (الجزء الثاني)
... تابع الجزء الثاني
الدرس الأول : التعرف على واجه البرنامج و بعض الخصائص:
الانطباع الأول :
عندما تفتح الفيجوال لأول مرة و كل مرة ستفتحه فيما بعد ستظهر لك النافذة الأولى دائما وهي نافذة المشروع الجديد (New Project) وستجد فيها ثلاثة تبويبات الأولNew لبدأ مشروع جديد و هو ما سنختاره والثاني Existing وهو لفتح مشروع مصمم مسبقا أي لفتح مشروع سابق و الثالثRecent وهي قائمة بآخر المشاريع المصممة .
المهم من التبويب New اختر مشروع من النوع Standard EXE أي قياسي وهو ما سنعمل به ويكون محدد مسبقا أما المشاريع الأخرى فلن تلزمك حاليا (تلك للمتقدمين).ثم اختر Open و الآن ها أنت في مشروعك الأول و لأول مرة يكون الفيجوال غير منظم نسبيا فيظهر لك نوافذ غير ضورية مثلاً إذا وجدت نافذة يعنوان Form Layout أغلقها لأنها لن تلزمنا و أهم شيء أن يكون هناك نافذة Tool Box أي العناصر و نافذة الخصائص Properties
و هناك نافذة قد لاتظهر وهي نافذة الProject Explorer قد تظهر فيها عدد الصفحات أو النوافذ التي سنصممها..ويمكنك إظهار هذه النوافذ من القائمة View و ستجدها بأسمائها..و الآن بعد أن نظمت واجهة اللغة فلنبدأ.
النوافذ:
في بداية كل مشروع قياسي سيقوم الفيجوال تلقائيا بإضافة نافذة لمشروعك وهي ما يسمى بلغة الفيجوال بال Form(و هي تعني صيغة بالانكليزية ) والآن لا خظ هذه الفورم وتأملها أليست مثل النوافذ التي نراها الآن حاول التحكم بأبعادها من خلال الإحدثيات الخاصة بها في أطرافها ..لا حظ أنها تأخذ الحجم الذي تريده ..وحتى حجم الشاشة بأكملها إن أردت ..و لكنها منقطة من الداخل أليس كذلك لا تخف هذه من الداخل فقط ..و الآن نريد تجرية برنامجنا ..اضغط على F5 من لوحة المفاتيح و لاحظ ها هو مشروعك الآول بين يديك ولكن كمستخدم وليس كمبرمج وهذه الطريقة دائما لتجربو المشروع .
(ملاحظة : يمكنك تشغيل المشروع أيضا بالنقرعلى رمزStart من شريط الأدوات العلوي ..أو من القائمة Run ثم Start..)
و الآن أغلق المشروع من زر الإغلاق في الأعلى (أن قلت المشروع و ليس الفيجوال).
ستلاحظ أنه قد عاد إلى وضع التصميم و الفورم المنقطة..الآن لاحظ اسمها Form 1 لماذا هل هناك Form2؟؟
سيصبح هناك Form 2الآن من القائمة Project اختر Add Formستظهر لك نافذة لإضافة عدة أنواع من الصفحات اختر المحددة وهي Form ثم Open.
و الآن لاحظ ها قد صار المشروع مكون من نافذتين وهكذا ..طبعاً الأنواع الخرى لن نتطرق لها الآن( مثل الModule وهي تسخدم في صناعة الفيروسات لأنها خفية).
لا حظ أنه يمكن التنقل بين الفورم1 Form 1 و الفورم 2 Form 2من خلال نافذة ال Project Explorer لذلك طالبتك بإظهار هذه النافذة في البداية..و الآن لنترك أمر الفورم وعددها وننتقل للتعديل على الفورم نفسها.
الخصائص (من دون توسع لأن لها درس خاص):
عندما تقوم بوضع الفأرة داخل الفورم و النقر ستلاحظ في نافذةProperties أن خصائص الفورم قد ظهرت و بالترتيب فمثلا قم بتعديل الخاصية Caption وهي تعني عنوان الفورم إلى النص الذي تريده حتى ولو كان بالعربية وستلاحظ تغيير عنوان الForm فورا إلى النص الذي أدخلته..
ملاحظة : لاتقم بتعديل الخاصية Name للفورم أو أي عنصر ستعلمه لاحقاُ لأن الفيجوال يتعامل معه على هذا الأساس.
أيضا عدل الخاصية BackColor أي لون الخلفية إلى اللون الذي تريد و لاحظ أنه تغيير لون الفورم إلى اللون المحدد ..
أيضا عدل الخاصة BorderStyle و هي خيارات إلى أحد الخيارات جربها واحد واحد ولا حظ إطار الفورم Form..و جرب النتيجة لكل خيار منها..
و الآن حتى درس الخصائص حاول أن تجرب بعض منها لكي تعرف مهمته وهذه الخصائص طبعاُ نفسها لكل Form.
العناصر و الأدوات:
انتقل الآن إلى صندوق الأدوات Tool Box والذي يحوي رموز قد تكون مألوفة بالنسبة لك...ستجد أن الرمز المختار تلقائيا هو رمز الفأرة Pointer و الآن سنتعرف على هذه الأدوات جربها واحدة واحدة من الأعلى:
اختر أي عنصر وقم برسمه على الفورم بداخلها طبعاُ ثم أذا أردت غير أبعاده كما تغيير أعاد الفورم عن طريق التحكم بأطرافه ..
الأداة Picture Box: أداة لعرض الصور بداخلها جرب أن تضع صورة بداخلها عن طريق النقر عليها لمرة واحدة ثم اتجه لنافذة الخصائص حيث ستجد خصائصها ومن الخاصية Picture اختر صورة من عندك..
الأداة Label: لوضع نص يداخلها غير قابل للتعيدل من قبل المستخدم ..غير الخاصية Caption من خصائصها ثم اكتب ماتريد و لا حظ تغيير النص إلى ما كتبته حتى ولو بالعريبة.
الأداة TextBox: أداة نص قابل للتعديل من قبل المستخدم ..لا تملك خاصية Caption ولكن عوضاُ عنها عدل بالخاصية Text ولاحظ كيف سيتغيير النص بداخلها ..شغل المشروع (F5) وجرب أن تغيير النص فيها كمستخدم.
الأداة Frame: مجرد صندوق لجمع عدد من العناصر للدلالة على مهمة معينة ارسمها على الفورم وستعرف مهمتها وحدك غير أيضا الخاصيةCaption لما تريد...
الأداةCommand(هام): وهو أشهر أداة أي الزر وهو غني عن التعريف ..قم أيضاُ يتغيير الخاصية Caption لما تريد ..
الأداة Check صندوق اختيار ..
الأداة Option: اختيرا اجباري ..
الأداةCombo : ارسمها وستعرف ما هي .
الأداة ListBox: ارسمها ايضا وستعرف ماهي.
الأداة Timer : اتركها الآن لمستوى متقدم..
الأداةShape: مجرد أشكال..
الأداة Image: لعرض الصور أيضا لكنها تتميز عن الPictureBox بأنها لا تقبل التعديل على الصور و الفلاتر مثلاُ.
الأداة و باقي الأدوات جربها فمن ما عدا أداتي ال Ole و الData لأنها لمستوى متقدم.
حفظ المشروع :
بعد هذا التصميم كله تريد حفظ مشروعك بالحقة vbe ليكون قابل للتعديل الآن من القائمة File خذ الأمر
Save Project As... عندها حدد مكان الحفظ و سيقوم المشروع بسؤالك عن حفظ الفورم Form واحدة واحدة ..ثم يسألك بعدها عن كلمة سر المشروع إذا أحببت أن تحميه ..إذا أردت وافق و اكتب كلمة سر علما أن المشروع لن يفتح بدونها و إن لم ترد ذلك اختر Cancel..
(ملاحظة هامة جدا: قد تغلط و تقوم بالنقر نقر مزدوج على الForm أو أي عنصر آخر عندها ستظهر لك نافذا الكود Code وهي نافذة للكتابة بالكود فقط أغلقها حاليا لن نتعامل معها الآن..)
و إلى هنا يكفي لهذا الدرس..أرجو ان اكون قد وفقت في كتابة الدرس..و أخذنا جولة برمجية ممتعة ..و الآن أريد تقاريركم هل عرفتم تطبقوا الدرس وما الصعوبات التي واجهكم و شكرا..
إخوكم : إيــاس
درس 4 : تطبيقات متقدمة على الكود
السلام عليــكم ورحمة الله ...سنتابع مع الكود نظراُ لأهميته مع تطبيقات اخرى..
درس 4 : تطبيقات متقدمة على الكـــود:
تطبيق1 :
ضع على الفورم Timer وهو العنصر الذي أجلناه ولم نتكلم عنه اتجه إلى نافذة خصائصه ستجد خاصية باسم Interval وهي مسؤولة عن سرعة المؤقت Timer و ستكون قيمتها 0 قد يتغييرها إلى 1000 و أضف Label إلى المشروع ثم اكتب الكود التالي في ال Timer:
كود:
Label1.Caption = Time
ها قد حصلنا على ساعة رقمية ..ما رأيكم..حاولوا تطبيق نفس الفكرة على الText ...
تطبيق 2 :
الفكرة هي كيفية تغييراللون عند وضع الفأرةعلى العنصر
1.في الفورم ضعlabel ولتكن label1 وسمها بالاسم الذي تشاء.
2.اجعل خاصية الlabel وهي الخاصية BACK STYLE تساوي O-TRANSPARENT.
3.ضع الكود التالي في ال LABEL والحدث MouseMove:
كود:
Label1.ForeColor = &H8000000E
4.ضع في الفورم و الحدث MosueMove الكود التالي:
كود:
Label1.ForeColor = &H80000012
5. شغل البرنامج وضع الفارة على ال LABEL وسترى أن لونها قد تغييرإلى الأزرق بمجرد المرور عليها طبق ذلك على ألوان مختلفة..
تطبيق 3:
سنصمم برنامج يتحكم بالنظام قليلا أو يسهل عملية تصفحه:
الكود التالي يقوم بفتح الخيارات الإقليمية:
كود:
Dim ei As Long
ei = Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2", vbNormalFocus)
الكود التالي لفتح خيارات المودم :
كود:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL modem.cpl", vbNormalFocus)
الكود التالي لفتح خيارات الانترنت:
كود:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl", vbNormalFocus)
الكود التالي لفتح خصائص جهاز الكمبيوتر :
كود:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl", vbNormalFocus)
الكود التالي لفتح إضافة إزالة برامج جديدة :
كود:
Dim ad As Long
ad = Shell("rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1", vbNormalFocus)
إلى هنــا يكفي كتطبيقات و أترككم قليلا لكي تتدربوا على موضوع الكود المهم جدا حتى نكمل دروسنــا مع تحزيم البرامج..وشكرا.
أخوكم : إيــاس
eias@sify.com
الدرس 5 : تحزيم البرنامج:
درس5:جعل البرنامج جاهزا ليعمل خارج الجهاز:
السلام عليكم و رحمة الله ... بعد أنا يتعرف الشخص على الفيجوال ويصمم برنامج عليه و لو كان بسيط يريد ان بجعل برنامجه جاهزا للعمل بعيدا عن بيئة الvb اما عمل البرنامج تنفيذي فهو أمر سهل:
من القائمة( file)ملف خذ الأمر Make Project 1 .exe و طبعا إذا كان برنامجك اسمه eias مثلا ستجد الاسم بدلا من اسم Project1..وقم بتعيين مكان الحفظ اتجد ملف واحد هو الملف التنفيذي أي ال Exe الخاص ببرنامج و بالأيقونة التي عينتها من داخل الفيجوال من الخاصية Icon للفورم..
الآن بعد أن تجد البرنامج مكان ما حددته افتحه ستجد انه يعمل وستجده بالأيقونة التي عينتها ( من خصائص الفورم icon) كما قلنا سابقا..
ولكن كثير ما تحدث المفاجأة عندما ننقل البرنامج إلى جهاز آخر غير جهازنا وهو أن البرنامج لا يعمل و على لأغلب ستكون العبارة بأنه يحتاج ملف dll .....
ماالحل؟؟؟؟
إن البرنامج عندما تعمل له أمر تنفيذي exe يكون غير كامل في الحقيقة و غالبا ما يعتمد على ملفات موجودة في system32 عندك في الجهاز لأن العناصر من Command و TextوLabel و غيرها ليست إلا ملفات بلاحقة Ocx (سنتكلم عنها لاحقاً) يجب أن تنقل مع البرنامج لكي يعمل على جهاز الغير الذي لايحوي فيجوال والآن ما العمل......إنه تحزيم البرنامج..
ما هو تحزيم البرنامج :
هو ضم جميع الملفات التي يحتاجها البرنامج مع الملف التنفيذي exe وخاصة إذا كان البرنامج فيه صور أو ماشابه..
كيف نحزم البرنامج .....نحزم لبرنامج عن طريق برنامج مرفق مع الvb اسمه
Package and deployment wizard
من القائمة ابدأ خذ كافة البرمج في Xp والبرامج في Me ثم خذ
Microsoft Visual Studio 6.0
ثم Microsoft tisual Studio 6.0 Tools
ثم Packge & Deployment Wizard فنكون قد وصلنا له...
(ملاحظة : إن لم تجد هذا المعالج في المكان المذكرو سابقاً لسبب ما فستجده في مجلد الفيجوال نفسه في الموقع التالي
Microsoft Visual Studio\VB98\Wizards\PDWizard
ويكون باسم PDCMDLN افتحه من هناك).
افتح ستجد واجهته بسيطة مكونة من ثلاث صور(لاحظ الصور المرفقة مع الدرس):
الأولى Packgeأي تحزيم و الثانية deploy أي نشر و الثالث نحن لسنا فيه الآن.
خطوات التحزيم:
1. ستجد كبسة browse استعراض اضغطها وحدد له البرنامج غير التنفيذي أي ليس الexe.
2.بعد التحديد اضغط Package عندها قد يظهر لك مريع يسألك ها تردي ترجمة المشروع أو Compile أو تحديدد الملف التنفيذي Browse..
خذ complie وإذا لم يقبل اعمل البرنامج تنفيذي وحدد له الملف التنفيذي.
3. بعدها كل ما سيأتيك اضغط NEXt وكل مايأتيك من مربعات نص اكتب فيه اسم البرنامج خاصتك.
4.بعد النتهاء قد يطلب ملف اسمه macab او ماشابه حدد له الملف في windows\system32 وبعدها سيعطيك تقرير .
5.بعدها نكون قد انتهينا من الحزم وجاء دور النشر...
6.خذ الخيار deploy..
7.بعدها ستمر بنفس الخطوات اضغط فقط next.
8.بعد الانتهاء اذهب للمجلد الذي وضعت فيه البرنامج غير التنفيذي ستجد مجلد اسمه حزم أو Packge افتحه ستجد قد صار لبرنامجك set up عندها يكون البرنامج جاهزا ..
هناك برامج أخرى للتحزيم مثل الSet up factory و wise Installion.هم أقوى من المعالج ولكن عندما تريد أن تحزم البرنامج عليك ان تضع في الحسبان نقل ملفات الDLLو ال OCX مع البرنامج وذلك لأن المعالج يقوم بنقل هذه الملفات إلى مجلد النظام في جهاز المستخدم أما هذه البرامج (مثل الSet up Factory ) فيجب وضع ملفات الdllو الocx مع البرنامج في نفس المجلد ...
فبعد أن تعمل تحزيم للبرنامج ستجد في نفس مجلد الحزم ملف بلاحقة Zip يحوي كل ملفات ال dll و ال ocx التي يجب نقلها مع البرنامج..
على فكرة إذا أردت أن تضع للبرنامج اسم الشركة و اسم المنتج التي تظهر في الخصائص أو اللون الباهت في xp اتبع ما يلي :
عندما تعطي خيار الMake exe ستجد في نافذة تحديد مكان الحفظ خيار Option افتحه وضع فيه ماتشاء من اسم وغيره..
أخوكم : إيــاس
الدرس 7 : ملفات الocx و التعامل معها
السلام عليكم ورحمة الله..سنتكلم اليوم عن ملفات الOcx و التي سنتعرف عليها الآن ...
الدرس 7 : ملفات الocx و التعامل معها
:
أولا ما هي ملفات الOCX?
ببساطة إن ملف الocx الذي يشبه ملف الDll هو ليس إلا هذه الأداة التي تأخها من صندوق الأدوات Tool Box ثم تقوم برسمها على الفورم بالحجم و الشكل الذي تريده و اللون و الاسم و ....و كل خاصية أو حدث كلها تكون مبرمجة و جاهزة للاستعمال في ملف الocx الذي يوجد عدد كبير منها في مجلد الSystem..
و لنأخذ هذه المقدمة عنها
تقنية OCX - وبداية ظهور Activex :
إن ثورة التقنيات لـMicrosoft Visual Basic بدأت مع الإصدار الأول وأخذت تنموا بالتدريج حتى كانت الثورة الثانية في الإصدار الرابع حيث في هذا الإصدار تم تغير محركEngine (وهوا الملف الذي يدعم البرامج أثناء تشغيلها ويسمى VVBRUN والذي كان مبني على تقنية 16-Bit ويعرف باسم Ruby والذي قام بابتكاره (الآن كوبر ) الأب الروحي لـ Visual basic) وفي بداية ظهور تقنية 32-Bit (Windows95 & WindowsNt) قامت Microsoft ببناء محرك جديد أسمته Object Basic والذي يعرف الآن باسم VBA وكان أهم ما في هذا المحرك هوا دعمه لتقنية COM .
وكان مع الإصدار الرابع على مطوري Visual basic دعم أدوات التحكم الخاصة Custom Controls ولم تكن VBX صالحة لذلك لا شكلاً ولا مضمونا , وكان البديل لذلك هوا دعم هذه الأدوات عن طريق تقينه OLE 2 ولكن لم تفي تقنية OLE 2 باحتياجات Visual basic لذلك تم تطوير OLE في صورة ابتكار أداة تحكم قائمة على OLE سميت (ocx)
ومع تتطور أنظمة التشغيل التي تعمل على تقنية 32-Bit وانتشارها , ومع ظهور لغات برمجة الانترنت المختلفة , قامت Microsoft بتغير هندسة تقنية ocx لتصبح صالحة للاستخدام على الشبكات وبخاصة شبكة الانترنت وقد قامت الشركة أيضاُ بتغير اسم التقنية من OLE والتي بنيت عليها ocx إلىActiveX .
ومن هنا بدأت الثورة الحقيقة لمبرمجين Visual Basic وهي إتاحة تطوير الأدوات Activex لتكون أسهل الطرق لإنتاج كائنات جديدة أو برمجة صفحات الويب بواسطة هذه التقنية .
وبعد هذه المقدمة...دعونا نتعرف أكثر عليها أنت حتى الآن من خلال الدروس السابقة لم تتعامل إلى مع عدد قليل منها Text و Labelو Picture و غيرها ..و لكن ما رأيك أن الفيجوال يملك عناصر أكثر من هذه التي تراها أضعاف مضاعفة و ألأكثر احترافية ...( ستتعرفون على قوة الفيجوال الحقيقية في برمجة الألعاب)..
الآن لا بد أن ذلك أثار حيرتكم أين هذه العناصر إذا ...هيا معا كي نتعرف عليها ان تختبأ..
اذهب لقائمة العناصر Tool Box و انقر بالزر اليمين للفأرة ..(انقر خارج العناصر في المساحة الفارغة).
و الآن لاحظ قد ظهرت لك قائمة بثلاثة عناصر اختر الاول المسمى ب Components أي عناصر أو أجزاء.
و لاحظ النافذة التي ظهرت ..نعم إنها نافذة العناصر و كل ما تراه من العناصر الموجودة في القامئة البيضاء أمامك هي عناصر أو ملفات Ocx اختر أحدها و ذلك بتفعيل إشارة صح إلى جانبه ثم OK و لا حظ انه عند اخيارك أي عنصر ستلاحظ امسه وموقعه في الFrame تحت الآن اختر أحدها ثم OK و لاحظ صندوق العناصر Tool Box لقد زاد عدد العناصر و احد أو ربما اكثر (حسب الأداة)..على كل حتى الآن لن تتعاملوا مع هذه العناصر لأنها متقدمة قليلا مثل ال Common Dialog المسؤول عن فتح الملفات الخارجية مثل الصور و الاصوات .
و لكن ما ذا لو أردنا مستقبلا التعامل مع ملفات الOcx التي نستوردها من الخارج ...مثلا ربما تجد اداة في أحد المواقع تقوم بتحميلها و تريد استعمالها الآن سنتعلم كيف سنستوردها ...
عد للنافذة Components ثم بدل أن تختار عنصر ما من القائمة البيضاء أمامكم اختر Browse..
بعدها حدد موقع الأداة في جهازك ثم OPEN..عندها ستجد الأداة و قد اصبح اسمها في القامئة ثم اختر OK و ستجد الأداة في Tool Box ...
و أدوات الOcx على الرغم من صعوبة برمجتها أو بالأحرى تطويرها لكن يوجد عدد كبير من الأدوات التي صممها أشخاص عرب و أنا شخصيا قد صممت عدد من الأدوات مثل أداة شريط ال Xp الجانبي و أداة ال Suoper Label ولو كان الوقت مناسبا لقمت بإضافتها للموقع..
و شكرا
أخوكم : إيــاس نبهان
eiasnabhan@hotmail.com
في انتظار الاخ Anime لكي يضيف الدروس الجديدة للفهرس..
الدرس9 : الجملة الشرطية If ..then
السلام عليكم ورحمة الله ...سنتكلم اليوم عن مفهوم في البرمجة وهو مفهوم الجملة if Then ...
الدرس 9 : الجملة الشرطية If...Then
من معنىالجملة فهي تبدو جملية شرطية أي وترجمتها (إذا ......عندها) أي أنه إذا حدث كذا افعل كذا و لهذه الجملة ثلاثة أساسيات لا تتم بدونها وهي:
بداية الشرط :If.
إنهاء الشرط وبداية نتيجة الشرط:Then
إنهاء المجيلة كاملة :End If
و يكون بناء المجلة كما يلي :
If aaa Then
bbbbb
End If
حيث
aaa: الشرط اللازم تحققه .
bbbb: العملية التي ستنفذ عند تحقق الشرط ..
و لكي نفهم الجملية الغامضة إلى الآن يجب ان نأخذ مثال...
مثلا ليكن لدينا Text وCommandنريد أنه عند الضغط على الCommand إذا كان الرقم الموجود في الText يساوي الواحد يظهر صندوق نص ...تعالوا لنجرب هذه العملية..
في الCommand ضعوا الكود التالي:
كود:
If Text1.Text = "1" Then
MsgBox "الرقم هو الواحد"
Else
MsgBox "الرقــم ليس الواحد"
End If
ويمتاز هذا الشرط بالقدرة على التعددية ...فمثلا تستيطيع أن تكتب عدد كبير جدا من الشروط المتتالية:
فمثلا لو كنت تريد أنه إذا كان الرقم واحد يظهر رسالة (الرقم واحد) و إذا كان الرقم اثنين تظهر رسالة (الرقم اثنين )
إذا كان الرقم ثلاثة تظهر رسالة (الرقم ثلاثة) ...فلنجرب..
كود:
If Text1.Text = "1" Then
MsgBox "الرقم هو واحد"
End If
If Text1.Text = "2" Then
MsgBox "الرقم هو اثنين"
End If
If Text1.Text = "3" Then
MsgBox "الرقم هو ثلاثة"
End If
والآن جربوا البرنامج و جربوا إدخال أحد الأرقام 1 -2 -3..و لاحظوا كيف يظهر الMsgbox.
استخدام Or:
من معنى الكلمة تبدو أنها (أو) و نستخدمها مع الجملة الشرطية للتخيير
إذا كان النص =1 أو النص=2 عندها
صندوق نص "الشرط محقق"
و إلا
صندوق نص "الشرط غير محقق"
إنهاء الشرط
كانت الجملة السابقة ترجمة حرفية لماسأكتبه الآن
كود:
If Text3.Text = "1" Or Text3.Text = "2" Then
MsgBox "الشرط محقق الرقم واحد أو اثنين"
Else
MsgBox "الشرط غير محقق"
End If
و هكذا نكون قد تعرفنا جيدا على الجملة if مع or. وهنا لن أتكلم عن الجملة AND وهي ابضا تابعة لiF.
و شكرا.
أخوكم : إيــاس نبهان
eiasnabhan@hotmail.com
جربو المثال مع الدرس
أخي الكريم حسام الحقيقة أنا الماسنجر عندي يعمل 30 ثانية و يسجل خروج وحده لذلك لو ترسل لي بريد بما تريد أفضل وتوقيتكم يختلف عن توقيتنا بساعة لأنكم لاتغيرون الساعة عند التوقيت الصيفي و الشتوي. و شكرا
الدرس 10 : التعامل مع المسارApp Path :
السلام عليكم ورحمه الله...في بعض البرامج قد نحتاج لاستيراد ملفات من الخارج صور أو ملفات نص او ماشابه و لما كان موقع البرنامج غير ثابت أي أنه ربما قام بتحميله المشتخدم في القسم c أو ربما في القسم d أو في مجلدات أخرى مثلD:\program لكان لا بد من أن يعرف البرنامج موقعه وموقع الملفات التي معه وهو ما يدعلى بال App Path وهو الدرس لهذا اليوم
ملاحظة: تفاديا للتكرار من غير فائدة فقررت أنه إذا وجد درس كتبه غيري بنفس المعلومات سأنقله إلى هنا ..و هذا الدرس من كتابة أخونا عضو نادي فيجوال بيسك للعرب العضو فتى فيجوال و له الشكر.
الدرس 10 : التعامل مع المسارApp Path :
App.path تعني مسار البرنامج ، وهي تستخدم للحصول على مسار المجلد الذي يوجد فيه البرنامج .
فمثلاً إذا كان لدينا برنامج في C:\New فهذا هو مسار البرنامج والذي يمكننا الحصول عليه باستخدام App.path
وللتجربة يمكنك الحصول على مسار برنامجك بواسطة أمر هكذا :
وسترى أنه يعطيك مسار المجلد الذي تحفظ فيه المشروع .
الفائدة من ذلك هو تلافي مشكلة تغير المسارات من جهاز لآخر ، فمثلاً في برنامج للصور ضع جميع الصور في نفس مجلد البرنامج ، ولتحميل صورة مثلاً اسمها PP1 وامتدادها Bmp اكتب :
كود:
Picture1.Picture = Loadpicture(App.path & "\PP1.Bmp")
ويمكنك أيضاً إنشاء مجلد جديد في نفس مجلد البرنامج وتسميه مثلاً Image وتضع فيه الصور ، وبذلك يصبح أمر تحميل الصور بالشكل التالي :
كود:
Picture1.Picture = Loadpicture(App.path & "\Image\PP1.Bmp")
وليست الصور هي كل ما نستخدم فيها App.path بل كل شيء ، فمثلاً لتشغيل ملف مفكرة ملحق بالبرنامج نضعه في مجلد البرنامج ونكتب :
كود:
Shell "notepad.exe" & " " & App.path & "\RedMe.txt", vbNormalFocus
ولنسخ نفس البرنامج نستخدم الأمر التالي :
كود:
Filecopy App.path & App.EXEName , "C:\Ahmed"
وهكذا ، وتوجد لـ App العديد من الفوائد التي لا يتسع المجال لذكرها ، ومنها مثلاً إنهاء البرنامج إذا لم يكن يعمل من القرص المدمج ، واستخدامها في أوامر حفظ البيانات واسترجاعها ، ومنع تشغيل أكثر من نسخة .... الخ
لكن ينبغي التنبه إلى أن App.path قد تعطينا C:\Ahmed أو C:\Ahmed\ ولتلافي هذه المشكلة نقوم بالتالي :
كود:
Dim Folder
Folder = App.path
If Right(Folder,1) <> "\" then Folder = Folder & "\"
هنا قمنا بتعريف متغير وخزنا فيه مسار البرنامج ، واختبرناه ، فإذا كان آخر حرف من اليمين لا يساوي \ فإننا نقوم باضافتها إليه .
وهكذا نتعامل مع الناتج والمخزن في المتغير Folder كأنه يحتوي على \ مباشرة ، ولذا لا حاجة لكتابتها قبل كتابة اسم الملف .
أما المتغييرات فسنتكلم عنها لاحقا
كاتب الدرس: فتى فيجوال
مع تحيات إخوكم :إيــاس نبهان
قوموا بتجريب المثال...إلى متى ستبقون صامتين هكذا..http://maxforums.net/images/smilies/bawlingmsn.gif
الدرس11: المتغيرات و الثوابت و المعاملات (القسم 1)
السلام عليكم...قد قد أتينا بالحديث على المتغير و بالإضافة إلى المتغير هناك ثابت و هذه المفاهيم كان لا بد من فهما .و كما قلت سابقا إذا كان الدرس متشابها مع الفكرة التي كنت ساكتبها فإنني سانقله بحرفيته..و هذا الدرس ليس من كتابتي إنما من كتابة عضو نادي فيجوال بيسك للعرب الأخ Taf Taf
الدرس11: المتغيرات و الثوابت و المعاملات :القسم الأول
مقدمــــــــــــــة :
البيانات في أي لغة من لغات البرمجة بما فيها فيجول بيسك أما أن تكون متغيرات Variables أو ثوابت Constants و المتغير هو مكان في الذاكرة يتم تخصيصه لك لتقوم بوضع عنوان له ويخزن المعلومة التي تريدها بداخلة كما يمكنك تغير هذه المعلومة بمعلومة أخري في نفس المكان ويظل عنوانه ثابت .
أما الثابت فمثله مثل المتغير تماما إلا انك لن تحتاج لتغير هذه المعلومة . وكما هو واضح من الاسم عبارة عن اسم يحمل قيمة ثابتة لا تتغير أثناء تنفيذ البرنامج .
ولكي هذان المثالين ليوضح لك وظيفة كل من المتغيرات والثوابت ..
مثال علي المتغيرات والثوابت :
المتغيرات . إذا أردت أن تسال عن اسم العميل الذي سيدخله المستخدم فان اسم العميل قيمة متغيرة لأنك لا تعرف من هو هذا العميل الذي سيقع عليه اختيار المستخدم في هذه الحالة تستخدم متغير لتضع فيه اسم العميل انظر المثال التالي :
كود:
HisName$=InputBox$("اكتب اسم العميل")
في هذا المثال سيعرض فيجول بيسك علي المستخدم مربع حوار نتيجة لتنفيذ أمر InputBox$ يطالبه فيه بكتابه اسم العميل ويقوم بحفظ اسم العميل الذي يدخله المستخدم في المتغير HisName$ ويبقي المتغير HisName$ يحمل هذا الاسم حتى يقوم المستخدم بتغيره ويتم تغير القيمة التي يحملها المتغير HisName$ بوضع قيمة أخري داخلة فيقوم الفيجول بيسك باستبدال القيمة القديمة بالقيمة الجديدة .
الثوابت . إذا كان عملك يتطلب مجموعة من العمليات الحسابية ترتبط بوحدة ثابتة مثل وحدة القياس المتر وهو يساوي مائه سنتمتر فيمكن الإعلان عن ذلك بالأمر التالي:
(مداخلة : التعريف يتم في القسم General).
وهذه يفيدك عندما تكون جميع حساباتك بالنسبة للوحدة سنتمتر فبدلا من قيمة المتر وكتابة الرقم ( 100 ) في كل مرة سيتم كتابه الثابت Meter في جميع التعليمات المطلوبة داخل البرنامج وهي فائدة كبيرة تجعل برنامجك سهلا وبسيطا.
فائدة أخري يمكن الحصول عليها من استخدام الثوابت ، فمثلاً في حالة تعديل كل حساباتك لتصبح منسوبة لوحدة الملليمتر بدلا من السنتمتر ( والمعروف أن المتر = 1000 ملليمتر ) فبدلا من إجراء هذا التعديل في جميع إجراءات برنامجك ( وهو كتابة الرقم 1000 بدلا من الرقم 100 ) يكفي أن تعدل الرقم 100 ليصبح 1000 في نفس الأمر كآلاتي .
وبذلك تتم عملية التعديل مرة واحدة فقط لتعطي النتيجة المطلوبة .
و ألان وقد تعرفنا علي وظيفة كل من المتغيرات و الثوابت و الفائدة المرجوة من استخدامهم ولكن بقي لنا أن نوضح كيفية التعامل مع المتغيرات و الثوابت ليمكننا استخدامهم بصورة صحيحة وبشكل أفضل .
ولعدم التشتت سنترك الثوابت قليلا وسنتكلم عن المتغيرات بشكلا من التفصيل .
لعلك يا أخي تتسأل عن الكثير من النقاط الغامضة التي لم يكشف عنها بعد ولعلك حاولت تطبيق الدرس السابق ولم تعمل معك المتغيرات أو الثوابت بشكل صحيح فمهلا يا أخي و لا تتعجل فهناك الكثير لكي تعرفه عن المتغيرات و الثوابت و سنبدأ بأنواع المتغيرات .
أنواع المتغيرات :
يوجد في الفيجول بيسك أنواع كثيرة للمتغيرات نوضح منها ما يلي .
نوع المتغير Integer : عدد صحيح صغير نسبيا ــ حجمه 2 Byte ــ مداه من 32768- إلي 32767
نوع المتغير Long : عدد صحيح كبر نسبيا ــ حجمه 4 Byte ــ مداه من 2147483648- إلي 214783674
نوع المتغير Single : عدد حقيقي صغير نسبيا ( يحتوي علي علامة عشرية عائمة Floating Point ) ــ حجمه 4 Byte ــ مداه من 3.402823E38- إلي -1.401298E-45 (قيم سالبة) و من 1.401298E-45 إلي 3.402823E38 (قيم موجبة)
نوع المتغير Double : عدد حقيقي كبير نسبيا (يحتوي علي علامة عشرية عائمة) ــ حجمه 8 Byte ــ مداه رقم هائل
نوع المتغير Currency : عدد حقيقي كبير نسبيا (يحتوي علي علامة عشرية ثابتة ) ــ حجمه 8 Byte ــ مداه رقم هائل
نوع المتغير Byte : عدد صغير جدا أو بيانات ثنائية ــ حجمه 1 Byte ــ مداه من الصفر إلي 255
نوع المتغير Boolean : متغير منطقي يحمل قيمتان فقط صفر أو واحد . أو True or False ــ حجمه 2 Byte
نوع المتغير Data : يحمل قيم تاريخه و وقت وهو من نفس نوع المتغير Double ــ حجمه 8 Byte ــ مداه من التاريخ 1 يناير 100 إلي 31 ديسمبر 9999 ومن الساعة 00:00:00 إلي 23:59:59
نوع المتغير Object : كائنات أو فئات Classes
نوع المتغير String : سلسلة من الحروف ــ مداه من صفر إلي 65500 حرف تقريبا
نوع المتغير Variant : الوقت/التاريخ أو عدد ذو علامة عشرية عائمة أو سلسة حروف ــ حجمه 16 Byte ــ مداه التاريخ من 1 يناير 0000 إلي 31 ديسمبر 9999 وفي الأعداد مثل Double وفي الحروف مثل String
و الآن وقد تعرفنا علي أنواع المتغيرات( ارجع إلي كتاب الأستاذ تركي العسيري فيه شرح لأنواع المتغيرات بشكل من التفصيل ).
ولكن بقي لنا شئ آخر وهو كيف نعلن عن هذه المتغيرات في فيجول بيسك . ومعني الإعلان عن المتغير عبارة عن أمر يخبر فيجول بيسك باسم المتغير ونوعه ليتمكن الفيجول بيسك من حجز المساحة اللازمة من ذاكرة الحاسب لهذا المتغير وتهيئته . وقبل الإعلان عن أي متغير يجب إن نعرف شئ مهم جدا وهي ..
الشروط الواجب توافرها عند اختيار اسم للمتغير ..
يجب أن يبدأ اسم المتغير بحرف أبجدي وليس رقما .
ألا يزيد عدد حروف اسم المتغير عن 40 حرفا .
ويجب ألا يحتوي علي أي مسافات أو نقاط وإذا كان اسم المتغير يحتوي علي كلمتين فأنصحك باستخدام (_) Under Score للفصل بينهما ..
و يجب أيضا إلا يتضمن كلمة من الكلمات المحجوزة وهي الكلمات التي تستخدم في الأوامر و العبارات التي يستخدمها فيجول بيسك فمثلا لا يسمح باستخدام كلمة Print كاسم للمتغير فإذا احتجت لتسمية متغير مثل كلمة Print فيمكنك أن تكتب الكلمة كجزء من اسم المتغير PrintText مثلا .
فائدة (1) :
يفضل الإعلان عن نوع المتغير لزيادة سرعة التعامل معه .المتغيرات التي لم تحدد نوعها يعمل فيجول بيسك علي الإعلان عنها تلقائيا من النوع Variant وهو أبطأ أنواع المتغيرات .
فائدة (2) :
يوجد نوعان من المتغير من النوع String وهي متغيرات ثابتة الطول Fixed Length و متغيرات متغيرة الطوال Variable Length . و المتغيرات الحرفية ثابتة الطوال وكما واضح من اسمها هي متغيرات محدد لها عدد الحروف في أثناء التصريح عنها ولا يمكن أن يتغير طولها وتكون بصورة التالية :
كود:
Dim TafTaf As String * 10
و المتغيرات الحرفية متغيرة الطول تستخدم في حالة عدم معرفتك بطول المتغير المار إليها ومن عيوبها إنها تلتهم حجم كبير جدا من الذاكرة .
كيفية الإعلان عن المتغيرات :
عند استخدام المتغير في فيجول بيسك فأن فيجول بيسك تتعرف علي المتغير بمجرد استخدامه في الكود وهذه الطريقة مريحة لأنك لان تحتاج إلي تعريف كل متغير قبل استخدامه ألا إنها يعاب عليها شئ خطير جدا وهو انك إذا أخطأت في كتابة اسم المتغير فأن فيجول بيسك سيعتبره متغيرا جديدا فمثلا إذا أنشأنا متغيرا مثل هذا ..
كود:
Value = 10 ' قيمة = 10Value هنا أعطينا المتغير
Text1.Text = Valu 'و هنا أخطأنا في كتابة اسم المتغير
و لحل هذه المشكلة الإعلان عن المتغير بأمر Dim مثلا . ( سنتكلم عن أوامر الإعلان عن المتغيرات لاحقا )
كود:
Dim Value As Integer
ولجعل فيجول بيسك لا يستخدم متغيرا إلا قبل الإعلان عنه أو بمعني اصح يجبرك للإعلان عن كل متغير تستخدمه بكتابة هذه العبارة في قسم التصاريح العامة General Declaration . بإظهار رسالة خطأ ..
ولجعل هذه العبارة تكتب تلقائيا . من قائمة Tools اختر أمر Options وضع علامة صح في صندوق الاختيار أمام عبارة Require Variable Declarations من صفحة Editor أي طلب الإعلان عن أي متغير قبل استخدامه ..
تعلمنا ألان فائدة الإعلان عن المتغيرات و المشاكل التي تترتب عليها إذا لم نعلن عن أي متغير نضيفه في برنامجنا ولكن السؤال هنا الذي يطرح نفسه هو كيف نعلن عن المتغيرات وما هي أوامر الإعلان وهذا يذكرني بمن تعلم القيادة ولكنه لا يعلم شئ عن قواعد المرور التي سترشده إلي الطريق الصحيح .
و لكي نتحكم في المتغيرات بشيئا من الفاعلية أكثر يجب نتعرف علي أوامر الإعلان حتى يمكننا الإعلان عن المتغير بشكل سليم واستغلال الذاكرة بشكل أفضل ..
التتمة سنكمله في درس لاحق...إنشاء الله...و الحقيقة أنتم تعرفون غدا المدارس تفتح ..و قد يخف نشاطي قليلا في كتابة الدروس لذلك سأحاول أن أكتب أهم الدروس لتبقى و ربما أغيب عام كامل عن النادي..
أخوكم : إيــاس نبهان