Visual Basic 6.0 translation

Sunday, March 25, 2012

Visual Basic Online Course - Excel 2003 Part 6

بسم الله الرحمن الرحيم


فى الدرس السابق تعلمنا كيفية طباعة الـ Excel.
درس اليوم ان شاء الله تعالى يتناول موضوع هام و هو التنسيق و لكن ليس كما نعرفه "بدون الأكواد" و كيفية ربط الـ Excel الفيجوال بيزك و حفظ التغييرات عليه و عرضه فى الفيجوال بيزك 6
الجـــــــــزء السادس - موضوعات هامه

الموضوع الأول : التنسيق

سنقوم بالتطبيق على المثال السابق و المطلوب هو :
1) عمل اطار للفاتورة
2) تكبير خط الـ Heading للفاتورة
3) جعل الأرقام مقربه لأقرب رقمين عشريين
4) تلوين عنوان الفاتورة بلون مخالف و الجسم الفاتورة بلون اخر
5) توسيع حجم الخلايا .

و فى النهايه ستظهر الفاتورة كما بالشكل التالى :


و سنبدأ الأن ببرمجه المشروع لاضافة أكواد تمكننا من العمل على الـ Excel ليظهر بهذا الشكل من داخل الـ Visual Basic 6.0 مع العلم أنه يمكن عمل ذلك مباشرة من داخل الـ Excel و لا يزال ضمن البرنامج و لكن اذا كنت لا تريد أن يفتح أى شخص ملف الـ Excel التابع للبرنامج و تغيير تنسيقه و قمت بحمايته فاضافة أكواد لتنسيق الـ Excel من داخل البرنامج هو الحل الأمثل .

- نفتح المشروع و نضيف Form جديده تكون بهذا الشكل :
Display Excel
و الـ Form عليها أداه تسمى : Microsoft Office XP Web Components تجدها فى الـ Component Ctrl+T قم باضافتها الى شريط الأدوات ثم ادراج SpreadSheet1 على الفورم كما فى الصورة و هذه الأداه غير أداة الـ OLE حيث أنه كان من الصعب التعامل مع تطبيقات الـ Office باداة الـ OLE ....

المطلوب منا عند فتح الـ Form1 لتنسيق الفاتورة الخاصه بنا أن نجدها فى الأداة و بالتالى فى الحدث Form_Load نكتب الكود التالى :





حيث قمنا بـ :
- تنسيق مكان الأداه على الفورم
- فتح الفاتورة الموجوده بالـ Excel بدون اظهار الـ Excel
- تعيين Sheet العمل
- نسخ خلايا الـ Sheet
- لصق خلايا الـ Sheet فى الأداه SpreadSheet1

الخطوه الثانيه هى مفتاح حفظ التغيرات التى تطرأ على الـ SpreadSheet فى ملف الـ Excel الذى به الفاتورة حيث نضع Command1 على الـ Form بعنوان Save To Excel و فى الحدث Command1_Click نكتب الكود التالى :
و ما قمنا بعمله هنا هو :






- تحديد مدى الخلايا المراد حفظها من A1 الى L70 و وضعنا فى الاعتبار أن الفاتورة سيضاف عليها بيانات .
- نسخ الخلايا فى المدى
- لصق الخلايا فى المدى المقابل فى ملف الـ Excel .
- حفظ التغييرات على ملف الاكسل بدون اظهار رسائل تنبيه منه .

خطوه أخيره لكى نتأكد من أن تم حفظ التغييرات و هى الحدث Form_Unload عند اغلاق الشاشة تظهر رساله "هل تريد الحفظ؟" كالتالى :



لاحظ :
يمكنك الان تنسيق SpreadSheet بالضغط Right-Click عليه حيث تظهر قائمه يمكنك من خلالها تنسيقه مثل الـ Excel و حفظ هذه التغيرات كما فعلنا فى الأعلى .
"حسب Microsoft فانه من غير الممكن ربط الاكسل بالفيجوال بيزك مباشرة" ... لذا يعتبر هذا المثال أقرب طريقه الى عمل .
يمكنك الان عمل (اضافه - حذف - تعديل - بحث) فى الاكسل باستخدام الاداه ...... !
- رابط المثال بالتحديث الأخير MediaFire
- مساعدات خارجيه External Links
1) MSDN
2) SpreadSheet Web Components - MSDN


بهذا الجزء نكون قد قمنا بتغطية أغلب النقاط المرتبطه بالتعامل مع الـ Excel و هناك العديد من النقاط سنقوم ان شاء الله تعالى بتغطيتها فى الجزء الأخير القادم فى المثال العملى ..... تابعونا !


Tuesday, March 20, 2012

Visual Basic Online Course - Excel 2003 Part 5

بسم الله الرحمن الرحيم

فى الدرس السابق تعلمنا كيفية استيراد البيانات من الـ Excel.
درس اليوم ان شاء الله تعالى يتناول كيفية طباعة الإكسل .
الجـــــــــزء الخامس - طباعة الإكسل

و لطباعة محتويات ملف Excel يجب ان نقوم :
1) تحديد مكانه
2) فتحه
3) تعيين الـ Sheet المراد طباعته
4) تحديد المدى Range المراد طباعته
5) تنفيذ عملية الطباعه

و بالتطبيق على المثال السابق "حساب فاتورة" نضيف الى الفورم مفتاح بعنوان "طباعة فاتورة" باسم Command3 و المطلوب هو طباعة الفاتورة الحاليه و يوجد طريقتين :
أ) تحديد الطباعه من الإكسل نفسه
ب) تحديد الطباعه من الفيجوال بيزك
و سنعتمد الطريقه الأولى الأن حيث سنفتح ملف الإكسل و سنحدد الفاتورة بالكامل و من File نختار Print Area ثم Set Print Area ثم نغلق الإكسل و نحفظ التغييرات .

نفتح الـ VB 6.0 و فى الحدث Command3_Click نكتب الكود التالى :
oXL.Workbooks.Open App.Path & "/ExcelFile.Xls", True, True
Set oSheet = oXL.ActiveSheet
oXL.DisplayAlerts = False
oSheet.PageSetup.Orientation = xlLandscape
oSheet.PrintOut
حيث فى الكود السابق :
- قمنا بفتح ملف الإكسل من مكانه المحدد و عمل Update Links و فتحه للقراءة فقط ReadOnly لأننا سنطبع فقط
- تحديد الـ Sheet الذى نعمل عليه oSheet
- اخفاء رسائل الـ Excel
- جعل شكل الطباعه LandScape بالعرض و ليس Portrait بالطول
- أمر الطباعه .

لاحظ :
اذا لم يكن لديك Printer سيقوم البرنامج تلقائيا بالطباعه فى ملف mdi يمكنك استعراض شكل الطباعه منه .

- بالنسبه للطريقة الثانيه و هى تنسيق ملف الـ Excel من داخل الفيجوال بيزك ففى درس قادم ان شاء الله بعد الانتهاء من الأساسيات المطلوب معرفتها للتعامل مع Excel بدون مشاكل .

- يمكنك ادراج جميع التنسيقات على ملف الاكسيل من داخل الـ Excel نفسه و طباعتها من الفيجوال بيزك و هى الطريقه الاسهل الا اذا كان التنسيق جزء من عمل البرنامج و فى جميع الحالات سندرس الطريقه الثانيه ان شاء الله .

- جارى تجهيز برنامج به جميع تطبيقات الاكسيل المطلوبه فى سوق العمل .

الى اللقاء فى الدرس القادم ان شاء الله بعنوان "بعض الموضوعات الهامه فى التعامل مع الـ Excel من خلال الـ Visual Basic 6.0 " .

Visual Basic Online Course - Excel 2003 Part 4

بسم الله الرحمن الرحيم

فى الدرس السابق تعلمنا كيفية استيراد البيانات من الـ Excel.
درس اليوم ان شاء الله تعالى يتناول كيفية تصدير Export البيانات الى Excel 2003.

الجـــــــــزء الرابع - تصدير البيانات الى Excel

بعد ان عالجنا كيفية استيراد البيانات فى الجزء السابق, نتعامل الان مع موضوع شبيه و هو تصدير البيانات الى الـ Excel مما يجعل التعامل مع الـ Excel مفيد الى حد كبير و سنقوم بالتطبيق على المثال السابق, لذا قم بتحميله من الدرس السابق.

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

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

فى الحدث Command1_Click سنكتب الكود التالى :


و ما قمنا به هنا هو كالتالى :
- فتح الاكسل تمهيدا لتصدير البيانات اليه حيث أول معامل هو امتداد+اسم ملف الـ Excel و المعامل الثانى UpdateLinks و المعامل الثالث ReadOnly = False لأننا نقوم بالتعديل عليه .
- تحديد الـ Sheet التى سيتم العمل عليها و هى الـ Sheet الاولى .
- تحديث الخلايا
- تحديد الـ Sheet النشطة حاليا
- الغاء الرسائل التى تظهر من الأكسل
- حفظ التغييرات على الأكسل
- اغلاق الـ Workbook
- الخروج من الاكسل
- اظهار رسالة تفيد الحفظ
لاحظ :
هذه الطريقه هى تبسيط للشرح فقط لكى تتعرف على طريقة التعامل مع Excel و سندرس طرق أكثر تعقيدا فى الدروس القادمه ان شاء الله و لاحظ ايضا انه لا توجد ايا من الطرق التى درسناها تخرج رسائل Error لا من الـ Excel أو من الـ Visual Basic و سنتعرض فيما بعد الى رسائل خطأ كثيره و معالجاتها ان شاء الله تعالى .

حتى الان لم نعمل الا على صف واحد من الخانات فى الـ Excel أى اننا لم نضيف بيانات جديده و للعلم : التعامل مع الـ Excel يمكن أن تجعله شبيه للـ Access و لكن مع الوقت حيث انهما متشابهان فى الكثير جدا .

اسف على الاطاله ......

الى اللقاء فى الجزء القادم ان شاء الله بعنوان "طباعة الإكسل"

Monday, March 19, 2012

Visual Basic Online Course - Excel 2003 Part 3

بسم الله الرحمن الرحيم

فى الدرس السابق تناولنا دراسة فتح و تعديل و حفظ ملف اكسل
موضوع اليوم ان شاء الله تعالى يتناول استيراد البيانات من الأكسل

الجـــــــــزء الثالث - استيراد البيانات من Excel

لكى يتم استيراد البيانات من الـ Excel بطريقة سليمه و مفيده دعونا نسترجع طريقة العمل مع الـ Access 2003 حيث نختار قاعدة البيانات و تحديد مكانها و فتحها ثم فتح الجدول و تحديد السجل ثم الحقل و فى النهايه نقوم باستيراد البيانات الى الـ Form عن طريق مثلا ADO 2.8 او DAO 3.5 .

و الميزه الكبيره من استيراد البيانات من الـ Excel فى أغلب الاوقات تعود الى وجود كميات من البيانات المطلوب معالجتها فى مكان واحد بطرق مختلفة خارج الـ Excel اما لأهميتها أو لصعوبة تطبيق تلك المعالجه من خلال الـ Excel ففى النهاية كون الـ Excel جزء من مجموعة الـ Microsoft Office فان ذلك يجعله Shared فى معظم الأوقات حتى فى حالة وجود Password فان فك الـ Password أصبح فى متناول الجميع أى انه غير أمن .

وظيفة الـ Visual Basic هنا هى الاعتماد على الـ Excel فى عرض ثم معالجة البيانات .
فى المثال السابق قمنا بعمل ملف Excel بسيط لحساب فاتورة و فى هذا الدرس سنقوم باستكمال الشرح على نفس المثال حيث سنقوم بــ :-
1) تصميم Form تتناسب شبيهه للموجوده بالـ Excel
2) ربط الـ Excel بالـ Visual Basic 6.0
3) عرض ملف الـ Excel فى Visual Basic 6.0

1) تصميم Form :
سنقوم بجعل الفورم تظهر بهذا الشكل كما فى الصورة التاليه و سيتم رفع المثال لتنزيله فى نهاية الموضوع ان شاء الله :
شكل الفورم
و هنا بعد تصميم الفورم كما بملف الاكسل ExcelFile.Xls الذى قمنا بعمله فى الدرس السابق فاننا سنقوم باستيراد البيانات الموجوده فيه على انها هى البيانات الوحيده فى الاكسل و لكن كما ذكرنا فانه فى الواقع يكون ملف الأكسل به بيانات اكثر من ذلك على سبيل المثال نحن نتعامل مع Workbook واحد و Sheet واحد فى بعض الاحيان تجد أكثر من Workbook و اكثر من Sheet و سنأتى الى ذلك ان شاء الله بعد معرفة كيفية الاستدعاء .

2) ربط الـ Excel :
بعد ان انتهينا من تصميم الفورم يأتى دور تعريف البرنامج على ملف الأكسل عند الضغط على مفتاح "استيراد من الاكسل" يجب ان يقوم البرنامج بـ :-
- تحديد مكان الاكسل
- فتح الاكسل
- تحديد الـ Workbook
- تحديد الـ Sheet
- تحديد الحقول المراد استيراد البيانات منها لوضعها فى الـ TextBox على الـ Form .
و سيتم جزء من ذلك فى الحدث Form_Load كالتالى :

حيث قمنا بتحديد مكان و فتح الـ Excel و ثانى معامل Parameter هو True و هو قيمة UpdateLinks أى نجعل ملف الـ Excel يقوم بتجديد الروابط و المعادلات الموجوده به و ثالث معامل ReadOnly قيمته True لأننا سنقوم فقط بالاستدعاء و الكود الثانى يفيد أننا لن نظهر الـ Excel على الشاشة .

3) عرض بيانات الـ Excel :
هنا سيتم وضع الأكواد فى الحدث Comman1_Click باسم "استيراد من الأكسل" كالتالى :

حيث قمنا بتحديد الـ Sheet و هو الـ Sheet رقم (1) ثم حددنا قيمة الـ Text1 تساوى الخليه رقم (L3) و هكذا لباقى الـ TextBoxs و بالنسبة للتاريخ فان تنسيق خلية التاريخ فى الـ Excel هو Date و بالتالى لا يوجد مشكلة فى استيراد حقل تاريخ من الـ Excel الى أداة تاريخ فى الـ Visual Basic وهى DateTimePicker باسم Dtp1 الموجوده على الـ Form .
قم بتجربة البرنامج ....

تحميل التطبيق حتى هذا الدرس MediaFire.Com
الى اللقاء فى الجزء القادم ان شاء الله تصدير البيانات الى الـ Excel 

Friday, March 16, 2012

Visual Basic Online Course - Excel 2003 Part 2

بسم الله الرحمن الرحيم

فى الموضوع السابق تناولنا دراسة انشاء ملف اكسل جديد و حفظه
موضوع اليوم ان شاء الله تعالى يتناول فتح و تعديل و حفظ ملف اكسل

الجـــــــــزء الثانى - فتح و تعديل و حفظ ملف اكسل


باذن الله تعالى سنستخدام مشروع المثال السابق و الذى سيتم رفعه فى نهاية الأجزاء ان شاء الله تعالى , حيث سنقوم بالضغط على New لانشاء ملف Excel جديد حيث سيفتح ملف الـ Excel على الشاشة ثم نقوم بحفظه فارغ بدون تعديل عليه باسم ExcelFile من مفتاح Save As الموجود على الفورم ثم نغلق الـ Excel الذى نلاحظ أنه بالفعل تغير اسمه فى شريد عنوان الـ Excel و نغلق البرنامج و نتأكد من وجوده فى المجلد الموجود به المشروع أو اذا كنت تقوم بنفس مثالى ستجده فى المجلد Excel كما بالصورة التاليه :
شكل المجلد
المفروض أننا نقوم الأن بالتعديل على ملف الـ Excel باستخدام الكود من داخل الـ Visual Basic و هنا نفرق بين أمرين :
1) التعديل على ملف الـ Excel الموجود به بيانات مسبقا و حفظ التغييرات .
2) بداية الكتابه فى ملف الـ Excel .
الان نقوم بفتح الاكسل ExcelFile عن طريق البرنامج كالتالى :
لا يوجد فرق برمجى بين النقتطين و لكن أريد أن أوضح نقطه معينه و هى أنه يمكنك استخدام الفيجوال بيزك لعمل مشروع Excel من البدايه الى النهايه و ايضا يمكنك التعديل على ملف اكسيل به عمل مسبقا و جعله جزأ من برنامجك و حتى لا نطيل فى الشرح ... نكمل بناء على الافتراض الأول ..
سنقوم بادراج مفتاح Command جديد على الفورم بعنوان Open Excel باسم CmdOpen و الذى سنقوم عن طريقه بفتح ExcelFile ... فى الحدث CmdOpen_Click نكتب الكود التالى :

و لكن ماذا اذا أردنا فتح ملف Excel اخر ؟!!
نعم , سنستخدم أداة CommonDialog الموجود مسبقا على الفورم باسم Cdl1 حيث سنقوم بادراج مفتاح Command جديد على الفورم بعنوان Open Excel As باسم CmdOpenAs .... حيث فى الحدث CmdOpenAs نكتب الكود التالى :

قم بتجربة البرنامج و لاحظ ظهور ملف الـ Excel مفتوح على الشاشة و الان ابدأ عمل الاتى كما فى الصورة التاليه :
شكل مثال الاكسل


و هو عباره عن مشروع حساب قيمة فاتورة صغير جدا بدون تفاصيل كثيره حيث ضريبة المبيعات (10%) و الاستقطاعات تكون أى رقم ...
بعد الانتهاء من تصميم الاكسل حاول حفظ ملف الاكسل ExcelFile و البرنامج مفتوح Ctrl+S او من File ثم Save ستجد أن ملف الـ Excel الذى انشأناه لا يتمكن حفظة لأنه ReadOnly أى مفتوح للقراءه فقط ,
 
اظهر البرنامج أمامك و اضغط على Save As و قم بحفظه بنفس الاسم ExcelFile أو بأى اسم اخر ستجد أن البرنامج يعطيك رسالة خطأ "Can not Create Object" .... اذا ما العمل ؟
لا حظ ان فى الدرس السابق قمنا بحفظ ملف الـ Excel بدون أى اعتراضات من البرنامج أو من MS-Excel 2003 و لكن لأن ملف الـ Excel هذه المره تم انشاءه مسبقا و محفوط بالفعل فهذا معناه اننا لن نتعامل مع oXl لأنه بالفعل حاضر معنا .... للتوضيح أكثر :


خارج بيئة الفيجوال بيزك - فى بيئة الويندوز العاديه عندما تضغط Right-Click و تختار New Excel File هل هذا يقوم الويندوز بانشاء برنامج Excel أو يقوم فقط بانشاء Workbook جديد ؟! طبعا يقوم بانشاء Workbook جديد .... و هذا ما نفعله فة بيئة الفيجوال بيزك حيث : نأخذ نسخه من برنامج Excel مره واحده فقط فى البدايه و نعمل عليها و نحفظها و لكن عندما نستدعيها لحفظها فاننا نستدعى Workbook و نحفظ Workbook..... وصلت الفكره ؟!
لان نريد تعديل كود الحفظ حيث نريد ان نحفظ Workbook موجود بالفعل مفتوح أمامنا فمنا بتعديله "بالكتابه فيه" و نريد حفظ هذه التعديلات .... فى الحدث CmdSaveAs_Click نستبدل هذا الكود :
WB.SaveAs FileNm
بهذا الكود :
oXL.ActiveWorkbook.Close True, FileNm
و نقوم بتجربة البرنامج نجد أنه قام بحفظ التغييرات بنجاح و لكن تظهر رسالة تأكيد حفظ التغييرات على ملف Excel موجود مسبقا "هل تريد حفظ التغيرات؟" و نضغط "Yes" و لكن ماذا اذا لم نرد أن نظهر هذه الرسالة و نؤكد الحفظ تماما ... نقوم بزيادة هذا السطر لكود الحفظ قبل اخر سطر ليصبح كود الحدث CmdSaveAs_Click كالتالى :


حيث الكود بالسطر قبل الاخير "قبل كود الحفظ" يمنع الـ Excel من اظهار رسائل نهائيا فقط يقوم بتنفيذ الأمر البرمجى المنطقى "بمعنى اخر الـ Excel افترض اننا سنقوم بالضغط على Yes" .
الأن قم بتجربة البرنامج و قم بأى تعديل و احفظ الـ Excel من مفتاح Save As ستجد أنه تم حفظة بالاسم الذى اعطيته أو بالاسم الموجود فعلا ExcelFile بدون مشاكل أو رسائل تحذيريه .

الحمد لله و الى هنا نكون قد وصلنا لنهاية هذا الجزء (فتح و تعديل و حفظ الـ Excel من خلال الفيجوال بيزك) بعد أن تعرضنا لمجموعه من الأخطاء و قمنا بحلها .

باذن الله تعالى الدرس القادم

Monday, March 12, 2012

Visual Basic Online Course - Blackboard

بسم الله الرحمن الرحيم
فى الدرس السابق درسنا حركة الماوس

و تحدثنا عن مشروع سبوره BlackBoard كمثال على الرسم و باستخدام الماوس
و شكل فولدر المشروع كالتالى :
Folder - BlackBoard.VBp
و شكل التصميم للمشروع كالتالى :

Form Design

و بعد الانتهاء من تصميم المشروع يجب حفظة و اغلاقة و اعادة فتحه مره أخرى
الأن ....... 
المطلوب :
و المطلوب هنا عباره عن 1) ملأ الـ Labels بالألوان "8 الوان" و عن الضغط على أى Label نختار لونه و نقوم بالرسم عن طريقه على الفورم .
2) بعد الانتهاء من الرسم نتوجه الى القائمه ة نختار New لمسح جميع محتويات PicDraw من الرسم الموجود عليها و البدء من جديد .
الطريقه :
يجب ان نحدد ما اذا كان الماوس فى وضع الرسم أم لا و يتم ذلك عن طريق تعرف متغير Boolean و هو DrawOn فى منطقة General Declaration كالتالى :
Option Explicit
Dim DrawOn As Boolean

ثم ملأ الـ Labels بالألــــــــوان كالتالى فى الحدث Form_Load :

لاحظ أن (I+8) معناها ألوان واضحه و زاهيه و يمكنك حذف الـ 8 و ستجد الألوان قاتمه فى كل مره تغير الرقم .

عند الضغط على Label نجعل لونه هو لون الرسم كالتالى :
Beep
PicDraw.ForeColor = LblColor(Index).BackColor

عند الضغط على Exit فى الـ Menu تظهر رساله للمستخدم للتأكد من أنه يريد الخروج من البرنامج كالتالى :


عند الضغط على New فى الـ Menu تظهر رساله للمستخدم للتأكد من أنه يريد مسح الرسم كالتالى :

عند الضغط على زر الماوس الأيسر اثناء وجود مؤشر الماوس على الـ PicDraw فان هذا يعنى بدأ الرسم كالتالى :

اذا اردنا تغيير لون خط الرسم اثناء الرسم يكون كالتالى :
If DrawOn Then PicDraw.Line -(X, Y), PicDraw.ForeColor

اذا رفعنا الاصبع من على زر الماوس الايسر فان هذا معناه توقف الرسم كالتالى :
If Button = vbLeftButton Then DrawOn = False
 قم بتجربة البرنامج ..... تحميل المشروع MediaFire

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

1) قم بتغيير خاصية AutoDraw لأداة PictureBox الى True و هذا ضرةرى اذا كنت تريد حفظ الرسمه و ايضا لاحظ ابطاء عملية الرسم حتى يصبح شكل خط الرسم ثابت persistent.
2) قم باضافة Open الى القائمة و قم ببرمجة كود يقوم بفتح CommonDialog و استيراد صورة bmp الى اداة PictureBox باستخدام دالة LoadPicture و ارسم عليها .
3) قم باضافة Save الى Menu و قم بكتابة كود لحفظ Image و التى هى من خواص PictureBox و الموجود عليها الرسمه المراد تخزينها على الـ HardDesk حيث اننا لا نحفظ الـ PictureBox و لكن الرسمه الموجود عليها فى Image و هنا فى  Image يحتفظ الفيجوال بيزك بالرسومات الثابته و يكون الحفظ بعد اختيار اسم للرسمه عن طريق CommonDialog ثم الحفظ عن طريق دالة SavePicture المثبته داخل فى PictureBox .
4) كود CLS الموجود فى New على الـ Menu لن يقوم بحذف صورة على PictureBox (توصل الى طريقة تستخدم بها AutoDraw لحذف الصورة لاستخدام PictureBox من جديد) استبدل كود CLS بكود يحذف محتويات PictureBox , و اقترح استخدام خاصية BF الخاصة بالأمر Line لرسم شكل له حجم الـ PictureBox بخلفيه مناسبه للرسم (بيضاء) .... لن يكون هذا سهلا ...... !!

قم بتطبيق الـ 4 خطوات السابقه و اضمن أنك الأن فى مستوى متوسط لبرمجة الـ Graphics فى بيئة Visual Basic 6.0 .

شكرا لمتابعتكم و اتمنى أن أكون أفدتكم .... لا تنسونا فى دعائكم !

Saturday, March 10, 2012

Visual Basic Online Course - Mouse Cursor Events


بسم الله الرحمن الرحيم
التعامل مع الماوس Mouse Events In Visual Basic 6.0

و هو موضوع مرتبط ارتباطا كبيرا بالتعامل مع الـ Graphics الا اننى لا أعتبره بقيه للدرس السابق


Mouse Events In Visual Basic 6.0

و الـ Mouse هو أداه لصناعة الـ Graphics اكثر من أى اداه اخرى للمستخدم و نحن نستخدم الـ Mouse لعمل Click و DblClick على الكائنات Objects لخاصة بالـ VB 6.0 .
و هنا فى هذا الدرس نتعلم كيفية ستخدام باقى أحداث الـ Mouse للرسم Draw على الـ Form و Picture Boxes فى بيئة الـ Visual Basic 6.0 .

MouseDown Event

حدث الـ MouseDown : حيث يصبح الحدث فعال أو قيد التنفيذ عند الضغط على زر الماوس و مؤشر الماوس فوق الـ Object المراد تنفيذ الحدث عليه و شكل هذا الاجراء يكون بالنسبه للـ Form كالتالى :


Sub ObjectName_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
.
.
End Sub
المعاملات السابقه تدل على :
Button : أى زر من أزرار الماوس تم الضغط عليه
Shift : يفيد حالة الضغط على مفتاح Shift - Ctrl - Alt
X,Y : احداثيات مؤشر الماوس عند الضغط عليه
و قيم المعامل Button تكون كالتالى :
vbLeftButton : قيمه (1) الزر الأيسر للماوس
vbRightButton : قيمه (2) الزر الأيمن للماوس
vbMiddleButton : قيمه (4) الزر الأوسط للماوس .
و قيم المعامل Shift تكون كالتالى :
vbShiftMask : قيمه (1) الزر Shift تم الضغط عليه.
vbCtrlMask : قيمه (2) الزر Ctrl تم الضغط عليه.
vbAltMask : قيمه (4) الزر Alt تم الضغط عليه.
ايضا اذا كان Shift = 5 هذا معناه ان كلا من (vbShiftMask + vbAltMask) تم الضغط عليهما معا اثناء تنفيذ الحدث Mouse Down .

MouseUp Events

و هو عكس أو نقيض الحدث السابق MouseDown و يصبح الحدث فعال أو قيد التنفيذ بعد حدوث الحدث الأول أو السابق له و هو MouseDown Event أى بعد ان يصبح زر الماوس حر او غير مضغوط عليه بعد أن كان مضغوط عليه و شكل الاجراء يكون بالنسبه لـ Object الـ Form هو كالتالى :
Sub ObjectName_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
.
.
End Sub
و له نفس معاملات و ثوابت الحدث السابق MouseDown Event .
 
MouseMove Events
 
و هو حدث مستمر يتم تنفيذه فى أى وقت يكون الماوس يتحرك على الـ Object و فى هذه الحاله الـ Form فكلما و جد كود ما فى الحدث MouseMove ينفذ كلما تحرك الماوس على الفورم مثلا .
و يكون شكل الاجراء الخاص بهذا الحدث فى حالة الفورم كالتالى : 
Sub ObjectName_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
.
.
End Sub
و له نفس خواص و معاملات الحدثين السابقيت فيما عدا اختلاف و هو أن Button يمكن أن يمثل زر واحد أو عدة أزرار معا مضغوط عليها , على سبيل المثال اذا كان :
Button = 0 فان هذا معناه أنه لا يوجد زر من أزرار الماوس مضغوط عليه بينما الماوس قيد الحركة.
Button = 3 فان هذا معناه أن الزر الأيسر للماوس و الزر الأيمن للماوس مضغوط عليهم بينما الماوس قيد الحركة .

بعد أن انتهينا من شرح الأحداث المتعلقه بالماوس تعالوا نقوم بتنفيذ مشروع Visual Basic 6.0 كامل نطبق فيه ما درسناه عن الـ Graphics مع Mouse و سيكون مشروع السبوره أو الـ BlackBoard حيث سنقوم بالكتابه و الرسم عليها بطبشور ملون أو أبيض كما نشاء .
و بداية سنقوم بعمل مشروع VB 6.0 جديد و نقوم بحفظة فى أى مكان باسم BlackBoard.vbp و الفورم باسم Main.frm و بعد التأكد من حفظة نغلقه و نعيد فتحه مره أخرى من الـ Folder الموجود فيه .
و سنقوم ان شاء الله فى الدرس القادم بمتابعة المشروع من البدايه الى النهايه و سيكون مرجع لاستخدام الـ Graphics .

Visual Basic Online Course

vb6 (63) Application Development (45) Visual Basic Online Course (45) Online Visual Basic Course (44) Visual Basic Help (44) Visual Basic Programming (42) IT Jobs (39) VB6 developer (38) Visual Basic Course (38) Visual Basic 6.0 (26) Microsoft Visual Basic 6.0 (25) VB6.0 (24) Visual Basic Programmers (24) vb 6.0 (24) visual basic programming tutorial (19) Third lesson (16) Source code download for Visual Basic 6.0 (14) Source code for Visual Basic 6.0 (10) visual basic tutorial (9) Visual Basic 6 (5) Visual Basic Courses (5) Lesson 3 (4) VB 0.6 - TreeView control (4) VB 0.6 With TreeView Control (4) VB6 Course (3) Create ActiveX (2) How to automate MS-Access from Visual Basic 6.0 (2) Add controls at runtime (1) Back up your Database (1) Change ActiveX icon (1) Change screen resolution (1) Create FTP (1) Crystal Reports 4.6 (1) Crystl32.ocx could not be loaded (1) DataGrid Columns re-size (1) Date Calculation (1) DateAdd Function (1) DateDiff function (1) FTP (1) Marquee Title Bar (1) Marquee VB 6.0 TitleBar (1) Method 'Action' of object 'CrystalCtrl' Failed (1) Microsoft Access with Visual Basic 6.0 (1) OpenSchema method (1) Save File Using CommonDilog (1) Track Database path (1) VB 0.6 - Registry (1) VB 0.6 With Registry Editor (1) VB 6.0 Access (1) VB 6.0 OOP (1) VB6 Access2003 ADO Like % (1) VB6 Add Date (1) VB6 Add Time (1) VB6 Date calculation (1) VB6 Subtract Date (1) Visual Basic Remote (1) Win7 (1) Windows7 (1) ms access networking details (1) remote Visual Basic DB (1) rounded and transparent forms (1) vb 0.6 style (1) vb 6.0 Remote Database (1)