شبكة قحطان - مجالس قحطان - منتديات قحطان

شبكة قحطان - مجالس قحطان - منتديات قحطان (https://www.qahtaan.com/vb/index.php)
-   مجلس برامج الكمبيوتر و الأنترنت (https://www.qahtaan.com/vb/forumdisplay.php?f=19)
-   -   المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع ) (https://www.qahtaan.com/vb/showthread.php?t=37722)

محمد المعمري 08-01-2008 04:42 PM

المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
http://www.qahtaan.com/works/up/get....q9ps1199796995


http://www.qahtaan.com/works/up/get....npsx1198363231
المدخل إلى فيجوال بيسيك 2005و 2008 على شان صبيان قحطان عزوتي يرخص كل شي:1107953448:

بمساعدة الحريف:075:
SmoothCriminal

لماذا فيجوال بيسيك 2005و2008؟:confused:
-العالم يتطور من حولنا ولابد لنا من نظرة على ما يحدث من أجل مواكبة التطور فالعالم يستعد الان لاستقبال Microsoft Visual Studio Codename Orcas الذى تم تغيير اسمة إلى Microsoft Visual Studio 2008 والذى سيعتمد على Dotnet Framwork 3.5 لم ندخل نحن إلى العمل فى بيئة Dotnet Framwork بالطريقة المرضية
-دخول Dotnet Framwork جعل لغة البيسيك لغة غنية جدا تمكنك من عمل معظم المشاريع
-البيسيك هى أسهل اللغات وأكثرها انتشارا فى العالم حيث أن اخر إحصائية تدل على أن 60%من المبرمجين هم مبرمجى بيسيك و40% لباقى اللغات
-من خلال تصفحى للمواقع العربية فلم أجد هناك موضوعات تبحث أو تناقش فيجوال ستوديو 2005 بصفة عامة فقررت أن أبداء بة
سأقوم بعرض معلومات بسيطة عن الدوت نت أولا قبل أن نبداء ثم أقوم بشرح الوظائف والخصائص من خلال مجموعة من الأمثلة البسيطة ثم التدرج حتى الوصول إلى المشاريع

نظام الموضوع
-موضوعات نظرية خاصة بالفيجوال بيسيك 2005 أقوم بشرحها دون التطرق إلى تطبيقات عملية
-أمثلة عملية سيتم عرضهما بصورة منفصلة

http://www.qahtaan.com/works/up/get....azlb1199797178



النقاط المشروحة
***
أولا
نظرة سريعة على دوت نت:deal:

http://www.qahtaan.com/works/up/get....kz6y1199797206


ماهو دوت نت؟:confused:
إطار عمل دوت نت (Dot Net Framwork)
إن كل الإصدارات الحديثة من لغات البرمجة قد صممت لتعمل فى ظل وجود إطارعمل دوت نت Dot Net Framwork ولكن ماهو هذا الإطار وما هو الدوت نت
من المعنى نستنتج أنة مجال أوحاوية لكن أيضا هناك سؤال أى مجال وإذا كانت حاوية فهى تحوى ماذا
-المجال الذى يجمعنا جميعا ضمن إطار عمل مشترك إذا نستطيع عن بعد المشاركة فى عمل واحد
-الحاوية التى تحوى المعدات التى تلزمنا لإتمام هذا العمل المشترك الذى اشتركنا فية فى السطر السابق والمقصود بالمعدات هنا هى لغات البرمجة
معنى ذلك أننا كمشاركين فى هذا العمل نمثل جزء من إطار عمل دوت نت وأن الأدوات التى هى لغات البرمجة أيضا تمثل جزء اخر ولكن هناك شىء يستدعى الوقوف أمامة لقد ذكرت أننا كمشاركين فى هذا العمل نمثل جزء ونحن جميعنا من نوعية واحدة وهو النوع البشرى وهذا الأمر أمر مقبول لأننا من نوع واحد ولا يوجد بيننا مشارك من نوع اخر قد يكون متعارضا مما يؤدى إلى إفساد المهمة ولكن ماذا عن الطرف الاخر وهى لغات البرمجة مختلفة النوعية وطبيعة العمل والسلوك وأحيانا متعارضة هل يصلح ذلك؟:confused:
كيف نستطيع نجعل هذة اللغات أن تفهم بعضها البعض من الذى يقوم بالترجمة؟:confused:
نفترض الان أننا أن نقوم بعمل برنامج ما وهذة النوعية من البرامج يلزمها مجهود ضخم ويحتاج إلى عدد كبير جدا من المبرمجين وعندما بحثنا عن مبرمجين وجدنا أن هناك مبرمج يجيد لغة البسيك والاخر ++C ومبرمج يستخدم الجافا أضف إلى ذلك أنهم متواجدون فى أماكن متباعدة قد تصل الى الاف الأميال ولم نجد أمامنا سوى ذلك ويجب أن يقومون بهذا العمل سويا هل يمكنهم إتمام هذا العمل وهم متباعدون هل برنامج مهم مثل هذا يمكن أن يتم وإذا تم هل سيعمل بكفاءة ؟:confused:
الإجابة على كل الأسئلة السابقة نعم
-كيف يتم هذا وما الرابط الذى استطاع تجميع مجهوادات مختلفة وغير متجانسة وقام بصبها داخل بوتقة واحدة إنة Dot Net Framwork
للإيضاح انظر الشكل

http://www.qahtaan.com/works/up/get....z6eu1199797770

وعن طريق اللون المشترك لكل عنصر يكون الناتج هو

بأحط الحكومه:021:
- عبد الله السحيمي ++J
- فارس قحطان #C
- ابن خضير ++C
- هبشان Vb
يمثلون هذا الإطار ويقوم Dot Net Framwork بتجميع العمل من كافة العناصر ويقوم بترجمتها إلى لغة موحدة
كيف يتم هذا؟
من الشكل يتضح الاتى تقوم لغات البرمجة بارسال العمل إلى مسرح العمليات والمسمى Dot Net Framwork إلى جزء محدد وهو Primary Microsoft Dot Net Framwork Components ويتكون هذا الأخيرمن
جزئين
1-Class Liberary
ما معنى هذة الجملة إذا قمت بترجمتها سواء كانت الترجمة حرفية أوغير حرفية فسوف أفشل فشلا ذريعا فى إيصال معنى هذة الجملة Liberary تعنى مكتبة و Class تعنى قسم فتكون الجملة قسم المكتبات أيضا غيرمفهومة
-تعريف (Class Module)
Module هى تصغير لكلمة Model التى تعنى نموذج وعند سؤالى عن تصغير نموذج قيل لى أنة أنموذج المهم المعنى أنة نموذج فى طور النمو ولكن ماهو؟
إذا كان مازال فى صورة نص Text فهو كود فإذا تم وضعة داخل التصميم إستعدادا لتنفيذة فقد صار Module فإذا تم توجيهة ليقوم بوظيفة ما فقد أصبحت لة أحقية فى الحصول على لقب Class وغالبا ماتكون وظائفة ثانوية الغرض منها خدمة العمل الأساسى .
إذن Class Liberary هى تجميعة كبيرة لأكواد سوف تصبح فيما بعد Classes وهنا داخل Primary Microsoft Dotnet Framwork Components يتم تجميع كافة Classes المعروفة للغات الفيجوال ستوديو
2-(Common Language Runtime ( CLR
ويتم إختصارها إلى CLR وهو بصورة مبسطة المكان الذى يتم تجميع الأوامر المرسلة وتحويلها إلى لغة موحدة قبل إرسالها إلى المترجم (Compiler)
تعريف (Compiler)
هو الاداة التى تقوم بترجمة الأكواد والأوامر التى نقوم بكتابتها أو تصميمها إلى لغة الآلة بصورة أبسط تحويلها الى الصورة التى يفهمها المعالج ويقوم بتنفيذها يعنى برنامج يعمل فى صورتة النهائية ولكل لغة برمجة المترجم (Compiler) الخاص بها
السؤال الان لماذا تطلب بعض البرامج Dotnet Framwork؟
الإجابة لأنها قد أنشأت تحت رعايتة وهو الذى بستطيع القيام بتشغيلها عن طريق العملية العكسية لما يحدث داخل (Common Language Runtime ( CLR وللإيضاح نفترض أننا نقوم بعمل برنامج ما واننا بالضرورة سوف نقوم بتصميم أزرار وقوائم....الخ فى السابق كان تصميم مثل هذة الأشياء يأخذ حوالى 70% من الوقت والمجهود المستنفذ لعمل البرنامج الان هذة الأزرار والقوائم وخلافة موجودة ومعدة مسبقا داخل الدوت نت أثناء تصميم البرنامج يسمح لك Dotnet Framwork باستخدام النماذج الموجودة لدية ولكنة لا يمكنك من دمجها داخل برنامجك أثناء تعبئة البرنامج وعلى ذلك عندما يريد أحد المستخدمين تشغيل برنامجك سوف يطلب منة البرنامج أن يقوم بتثبيت Dotnet Framwork أولا لأنة هو الذى لا زال يحتفظ بالمكونات المذكورة سابقا والتى بدونها لن يعمل هذا البرنامج.
عودة للحديث عن تطبيقات (Common Language Runtime ( CLR
يقوم CLR بتوفير عدد من الخدمات الذى سوف بستخدمها الدوت نت لكى يتمكن من أداء المهمة
1-المترجم Compiler وقد تحدثنا عنة
2- مستكشف الأخطاء Debugger
3-مدير الذاكرة Memory Manager
4-إدارة السرية Security Management
5-المعارضة Exception Handling
-ميكانيكية عمل (Common Language Runtime ( CLR
يقوم (Common Language Runtime ( CLR بتحويل لغات الفيجوال ستوديو إلى ما يسمى باللغة الوسيطة ( Microsoft Intermediate Language ( MSIL هذا عند الإنشاء ويقوم بالعملية العكسية عند التشغيل
ماالذى استفدناة من الدوت نت
أصبح بالإمكان الان كتابة برنامج بأكثر من لغة برمجية ولكن ما الفرق بين أن أكتب برنامجا ما بلغة برمجية واحدة أوأكثر
-إيضاح
الفيجوال بيسيك كلغة فهى جيدة جدا وسهلة بالمقارنة مع اللغات الأخرى ولكنها تعتمد على نماذج معدة مسبقا من قبل ميكروسوفت مما كان يجعلها محدودة التطبيقات أى أنها كانت تعتمد على ماتوفرة ميكروسوفت من تطبيقات فقط وكان من الصعب جدا أن تقوم باى ابتكار لتطبيق جديد غير مدرج من قبل ميكروسوفت أما لغة ++C فهىقادرة على عمل أى شىء وبدون حدود ولكنها صعبة وتحتاج إلى درجة عالية جدا من التركيز كما انة من الصعب أن يقوم من يستخدمها بتصور الناتج النهائى ومدى كفائتة أثناء العمل والتعديل فى السطر رقم 70 مثلا وأنت تعمل فى السطر رقم 1200 يلزمك التعديل فى كافة الأسطر غالبا وأشياء أخرى ليس وقت الحديث فيها وبالنسبة للغات الاخرى فكان يعيبها نفس العيوب الخاصة بالفيجوال بيسيك مع وجود اختلافات ولكن الان يمكنك فعل أى شىء باستخدام أى لغة وبصورة أكثر دقة أنك تستطيع إستغلال المميزات المتواجدة فى اللغات الأخرى دون النظر عن اللغة التى تستخدمها بالفعل
-المستفيد الأول من Dotnet Framwork هو الفيجوال بيسيك
-فى السابق عندما كنت تقوم بإنشاء برنامج ما وكان هذا البرنامج يحتوى على مكونات ما مثل تطبيقات (COM (Component Object Model أويحتوى على ملفات مثل ملفات (Windows DLL (Dynamic Link Library أو غير ذلك كان ينبغى عليك إرفاق كافة الملفات التى تم إنشاؤها أثناء العمل ببرنامجك الذى قمت بإنشاؤة وهذا يفسررسائل الخطاء التى على الشكل التالى
-التطبيق خاطىء الملف الفلانى غير موجود قم بإصلاح الملف التالف أو قم بإعادة الإعدادات أو اتصل بالبائع أو فوت علينا بكرة وكان سبب ذلك عدم وجود ملف من الملفات التى قام المبرمج بإنشائها أثناء عملة فى إنشاء البرنامج
ماهى عيوب الدوت نت
1-البرامج التى أنشأت فى وجودة لا تعمل إلا فى وجودة
2-السرية Security
إن وجود إمكانية المشاركة الشرعية عن بعد يعتبر فى حد ذاتة خرقا لقواعد السرية هناك قاعدة أمنية تقول إن كل ما يمكن الحصول علية بطريقة شرعية يمكن ايضا الحصول علية بصورة غير شرعية دون النظر إلى الكيفية التى تتم بها حماية هذا الشىء

يتبع.................:banana: :banana: :banana: :banana: :banana:

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

ابن خضير 08-01-2008 06:23 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

مجهود تشكلر عليه

وفي انتظار جديدك

وسوف يتم تجميع الدروس في موضوع بعد الانتهاء منها

والله لا يهينك ويعطيك العافيه

محمد المعمري 09-01-2008 12:01 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
http://www.qahtaan.com/works/up/get....npsx1198363231

الله لايهينك يابن خضير على الحضور المبكر :)
ولا شكر على واجب الله يطول عمرك
و لاتنسى تابع الدروس الآتية بأذن الله ........:1108277095:

ومالكم ألا دروس متكامله و افيه:1108277077:

فارس قحطان 09-01-2008 12:22 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
الموضوع شكله يبي له جلسه


يعطيك العافيه :)


لي عوده

عبدالله السحيمي 09-01-2008 11:32 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
ارحــــب يا ابو حسين

الله يبيض وجهك على الجهد هذا موضوع جميل

وبدايته قويه وجميله

وبرنامج الفجوال بيسك برنامج رائع ولكن يبيله واحد يفهم لغته وطريقته

وانت بيض الله وجهك اذا بتجمعها في موضوع واحد ابيض وجه


وانا بعدم بالي اقدر عليه ياكحيلان

وتستاهل نقاط سمعه

خالص شكري وتقديري

اخوك/عبدالله السحيمي

محمد المعمري 10-01-2008 01:25 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
اقتباس:

المشاركة الأصلية كتبت بواسطة فارس قحطان (المشاركة 424809)
الموضوع شكله يبي له جلسه


يعطيك العافيه :)


لي عوده

أرررررررررررحب يا فارس قحطان
الله يحيك في أي وقت

محمد المعمري 10-01-2008 01:32 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
اقتباس:

المشاركة الأصلية كتبت بواسطة عبدالله السحيمي (المشاركة 424963)
ارحــــب يا ابو حسين

الله يبيض وجهك على الجهد هذا موضوع جميل

وبدايته قويه وجميله

وبرنامج الفجوال بيسك برنامج رائع ولكن يبيله واحد يفهم لغته وطريقته

وانت بيض الله وجهك اذا بتجمعها في موضوع واحد ابيض وجه


وانا بعدم بالي اقدر عليه ياكحيلان

وتستاهل نقاط سمعه

خالص شكري وتقديري

اخوك/عبدالله السحيمي

أرررررررررررحب ياعبد الله

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

أخوك مبرمج /// لك و للأعضاء خالص التقدير

محمد المعمري 10-01-2008 01:34 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
ثانيا:banana: :banana:

التحميل والتثبيت:1107953627:
الإعداد (Setup)

نراجع سريعا الإعداد وسوف نقوم بإعدادات الحد الأدنى حتى لا نستهلك مساحة من القرص الصلب دون داعى
http://www.qahtaan.com/works/up/get....qidx1199800438

أول واجهة تظهر عند بداية الإعداد
http://www.qahtaan.com/works/up/get....xjbg1199800484

هذة الإعدادات إختيارية وليست إجبارية ثم يأتى دور MSDN Liberary مكتبة الأكواد المرجعية
بخصوص SQL Server2005 يمكن إعدادة الان أو فيما بعد حتى لا يستهلك كمية من الذاكرةالعشوائية RAM

روابط للتحميل

Microsoft.Visual.Studio.2005.Professional.Edition


أولا: فيجوال ستوديو 2005 كاملا وحجمة 2.7 جيجا
تم تجديد الرابط بتاريخ 20/7/2007
إضغط الرابط
Microsoft Visual Studio 2005 Team Suit




لمستخدمى ويندوز فيستا يجب أيضا تحميل Visual studio 2005 Service pack1 من هذا الرابط
VS 2005 SP1
الحجم 430 ميجا
و هنا ستجد كل إصدارات Microsoft Visual Studio 2005

http://msdn2.microsoft.com/fr-fr/eva.../bb188238.aspx
ثانيا:فيجوال بيسيك 2005 إكسبريس
وذلك لمن يريدون نسخة خفيفة لاستخدام فيجوال بيسيك فقط ولا يستطيعون تحميل الفيجوال ستوديو كاملا فهذة النسخة تكفى ويمكن تحميلها من الرابط التالى

Visual Basic 2005 Express


حجم النسخة 435 ميجا
كما يوجد تحديث للبرنامج خاص بويندوز فيستا هذا رابطه :-
http://download.microsoft.com/downlo...32-X86-ENU.exe
أو الذهاب إلى الرابط التالى
http://msdn.microsoft.com/vstudio/ex...upport/install
والذين يستخدمون ويندوز فيستا يجب أيضا عليهم تحميل Visual Basic 2005 Service Pack1 من الرابط التالى

Visual Basic 2005 SP1


الحجم 32 ميجا

ثالثا:SQL2005 Standerd Edition
من هذا الرابط


SQL 2005 Standerd Edition

الحجم 890 ميجا نسخة كاملة وليست تجريبية
ويمكنكم تحميل هذا التحديث SQL 2005 Service Pack2 وحجمها 282 ميجا
من موقع ميكروسوفت مباشرة إضغط هنا


SQL 2005 SP2




***
ثالثا:banana: :banana: :banana:
Namespace System.Collections(للقراءة)



إن فيجوال ستوديو 2005 يتيح إنشاء أنواع عديدة من التطبيقات التالية
-تطبيقات الويندوز Windows Forms
-تطبيقات الدوس Console applications
-تطبيقات الويب Web Forms
ولكن كيف يقوم بتوفير الأدوات اللازمة لإنشاء هذة التطبيقات؟
-يقوم الدوت نت بتوفير عدد كبير جدا من قواعد الفئات Base Class وهى وحدة كود صغيرة تحتوى على وظيفة ما وهى قابلة للتعامل مع لغات الفيجوال ستوديو دوت نت بمعنى أنة يمكنك التعامل معها من خلال

الفيجوال بيسيك أو #C أو ++C أو ++J بدون أى تغيير فى مكوناتها
- اسم المجال Namespace
لا يمكن ترجمة Namespace ترجمة حرفية لأنها تعطى معنى بعيد عن ما نتحدث عنة المقصود بهذا المصطلح هو مجموعة من المكونات مرتبة طبقا لمجموعة من الوظائف المدرجة بها وهى كالتالى
1- System.Collections
2-System.Diagnostics
3- System.Data
4- System.IO
5- System.Math
6- System.Reflection
7- System.Security

أولا: System.Collections
هى مجموعة تحتوى على عدد من الفئات Class وهى تمكنك من عمل عديد من الأشياء مثل حفظ القوائم والتعديل والإضافة والحذف
بعض الأمثلة على Namespace System.Collections
( قائمة المصفوفة ArrayList )
أولا ما هى المصفوفات ؟
.................................................. .................................................. .................................................. .........................
تعريف
هى جمع مصفوفة والمصفوفة هى سلسلة من القيم المتشابة والتى ترتبط معا من خلال عامل مشترك يجمعها
مثال: قطع الشطرنج والجنود داخل الكتيبة وعملاء شركة وتلاميذ فى فصل
وفائدة المصفوفة هو تقليل حجم العمل الذى ينبغى عليك عملة لتخزين عناصر المصفوفة
مثال: عند عمل لعبة شطرنج فإنك تحتاج لعمل 64 متغير لأن الرقعة تحتوى على 64 خانة مختلفة بينما تستطيع وضع 64 خانة هذة داخل مصفوفة واحدة ويتم الإعلان عن المصفوفة باستخدام الأمر Dim
.................................................. .................................................. .................................................. .........................
عودة إلى قوائم المصفوفات
إن قائمة المصفوفةArrayList مشابهة لدرجة كبيرة مع المصفوفات ولكنها تختلف فى أنها قادرة على النمو والإمتداد كما أنة يمكن إضافة مزيد من العناصر إليها وهى مناسبة إذا كان لديك مجموعة بيانات تتغير

بصورة مستمرة بالزيادة أو النقصان
التعامل مع قائمة المصفوفة Array List
-خصائص قوائم المصفوفاتProperties of ArryList
Capacity
لقراءة الحجم الحالى لقائمة المصفوفة ArrayList
Count
عدد العناصر الموجود بالفعل داخل قائمة المصفوفة
Item
إيجاد عنصر معين من عناصر قائمة المصفوفة
-ألأوامر الخاصة بقائمة المصفوفة ArrayList
Add
إضافة عنصر أو بند جديد
Clear
مسح أو إزالة كل العناصر
IndexOf
تحديد موقع عنصر محدد داخل قائمة المصفوفة
Insert
إضافة عنصر أو بند جديد فى موقع محدد داخل قائمة المصفوفة
Remove
إزالة عنصر أو بند المطلوب
RemoveAt
إزالة عنصر أو بند فى موقع معين
Sort
ترتيب وفرز
ToArray
نسخ الكل أو جزء ما إلى مصفوفة
TrimToSize
تقليص الحجم الكلى إلى الحجم الفعلى
.................................................. .................................................. .................................................. ................
( المصفوفة المقصوصة أو المقطوعة Bit Array )
وهى خاصة بإدارة قائمة المصفوفة Array List على مستوى البيانات المدمجة داخل المصفوفة وتقوم بالتحكم فى كل عنصر على حدة وبصورة فردية
مثال
رقعة الشطرنج التى تحدثنا عنها يوجد بها 64 خانة نفترض أننا أردنا أن نقوم بالتحكم بالخانة 5C فإن Bit Array تستطيع التحكم فيها من خلال إعطاؤها قيمة تسمى Boolean Value ويكون التحكم فى

صورة True أو False
http://www.qahtaan.com/works/up/get....himr1199960105

تعريف Boolean Value
وتسمى أحيانا القيمة المنطقية للبيانات وهى تعطى الهدف أحد قيمتين True أو False ويتم التعبير عنها كالتالى
True=1
False=0
.................................................. .................................................. .................................................. ................
(المقارن عديم التدقيق Cas Insensetive Comparer )
ويقوم بالمقارنة بين عنصريين دون التدقيق ومطابقة الاسم أو النص
.................................................. .................................................. .................................................. .................
( Case Insensitive Hash Code Provider )
وهو الذى يقوم بإمداد المقارن عديم التدقيق Cas Insensetive Comparer بالكود الذى يقوم بالمقارنة على أساسة
.................................................. .................................................. .................................................. .................
(Collection Base )
وهو الذى يقوم بتوفير Class Base قواعد الفئات
.................................................. .................................................. .................................................. .................
(Comparer )
المسئول عن عمليات المقارنة بين العناصر وهو Case Sensitive يعنى يتحسس حالة الأحرف
.................................................. .................................................. .................................................. .................
( ReadOnly Collection Base)
المسئول عن جعل بعض قواعد الفئات للقراءة فقط أى غير قابلة للتحرير
.................................................. .................................................. .................................................. .................
( الطابور Queue)
تمكنك من إضافة البيانات بسهولة وكذلك إخراجها بسهولة وتعتمد فى عملها على المبداء First in-First out ما يدخل أولا يخرج أولا ويرمز لها
بالإختصار FIFO فهى تشبة حركة الأشخاص خلال الطابور
خصائصها
Count
عدد البنود الموجودة
الأوامر
Clear
مسح الكل
Dequeue
إخراج أحد العناصر وإعادتة مرة ثانية
Enqueue
إضافة عنصر جديد
Peek
عرض أحد البنود بدون إزالتة
..............................................
(التكديس Stack )
نفس الطابور Queue ولكنة يختلف فى شىء واحد First in-Last out مايدخل أولا يخرج أخيرا ويرمز لها بالإختصار FILO مثال لو قمت
بوضع مجموعة من الكتب فوق بعضها البعض فإن أول كتاب وضعتة سيكون فى الأسفل واخر كتاب فى الأعلى
خصائصها
Count
عدد البنود الموجودة
الأوامر
Clear
مسح الكل
Pop
إخراج أحد العناصر وإعادتة مرة ثانية
Push
إضافة بند جديد
Peek
عرض أحد البنود بدون إزالتة
................................

(فرز القوائم Sorted List)
نفس إن قائمة المصفوفةArrayList ولكن يتم عمل مفتاح لكل بند لتمكين عملية الفرز وإعادة الترتيب
الخصائص
Capacity
لقراءة الحجم الحالى للقائمة
Count
عدد العناصر الموجود بالفعل داخل القائمة
Item
إيجاد عنصر معين من عناصر القائمة
Keys
قراءة جميع المفاتيح المسجلة داخل القائمة
Values
ترتيب جميع البنود طبقا لترتيب المفاتيح
الأوامر
Add
إضافة عنصر أو بند جديد
Clear
مسح أو إزالة كل العناصر
IndexOfKey
تحديد موقع عنصر محدد داخل القائمة
Remove
إزالة العنصر أوالبند المطلوب
RemoveAt
إزالة عنصر أو بند فى موقع معين
TrimToSize
تقليص الحجم الكلى إلى الحجم الفعلى


أنتهى معى أمل التواصل:1108277095:

محمد المعمري 11-01-2008 08:33 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
رابعا :banana: :banana: :banana: :banana:
تحليل المثال رقم 3 رقم الحظ


كود:
PictureBox1.Visible = False
معنى Visible يعنى مرئى فيكون معنى السطر إجعل خاصية رؤية محتويات PictureBox1
إذا اختارنا False فهذا يعنى (لا) فإذا كانت True فهذا يعنى (نعم) فيكون المعنى كاملا فى الحالة المذكورة
لاتقم بإظهار محتوى صندوق الصورة
إذا نظرنا إلى التركيبة فنجد أنة تم تكوينها بالصورة التالية
(العنصر).(الخاصية المطلوب التعامل معها) =قيمة
كأنها معادلة رياضية
العنصرهنا هو( PictureBox1)
ثم الفصل بينهما باستخدام (.)
الخاصية هنا( Visible)
القيمة المتغيرة هى Boolean وكما أشرنا فإنها تأخذ أحد قيمتين True أو False

كود:
Label.Text = CStr(Int(Rnd() * 10))
إن CStr هى فى الحقيقة إختصار للجملة Convert String وكلمة String تعنى نص
إذن المعنى قم بتحويل النص
وهى ليست CStr بل هى()CStr و يصبح معنى () أى المحتوى بين القوسين
أما بالنسبة لكلمة Int فهى اختصار Integer وهو رقم صحيح لا يحتوى على كسور أو علامات عشرية
وهى هنا ()Int أى الرقم الصحيح الموجود داخل المحتوى التالى
بالنسبة لأهم تركيبة هنا فهى هذة Rnd() * 10
Rndهى اختصار Random ومعناها (عشوائى) إذن لدينا الان رقم صحيح عشوائى سوف يحل محل Text فى Label
ولايضاح معنى Rnd() * 10 وما سينتج عنة نتابع هذا التسلسل
Rnd() * 100 تعطى الأرقام الصحيحة من 0 إلى 99
Rnd() * 1000 تعطى الأرقام الصحيحة من 0 إلى 999
Rnd() * 10000 تعطى الأرقام الصحيحة من 0 إلى 9999
Rnd() * 100000 تعطى الأرقام الصحيحة من 0 إلى 99999
Rnd() * 1000000 تعطى الأرقام الصحيحة من 0 إلى 999999
وهكذا وهذا التتابع يسمى تتابع لوغاريتمى
فيكون معنى هذا السطر

كود:
Label.Text = CStr(Int(Rnd() * 10))
قم بتحويل النص الموجود فى العنوان إلى عدد عشوائى صحيح بشرط أن يكون أكبر من ولا يساوى -1 وأقل من ولا يساوى 10
كود:
If (Label1.Text = "7") Or (Label2.Text = "7") _
Or (Label3.Text = "7") Then
PictureBox1.Visible = True
Label4.Visible = True
Beep()
End IfIf
إذا وهى أداة الشرط
قيمة العنوان الأول =7
Or أو
قيمة العنوان الثانى =7

Or أو

قيمة العنوان الثالث =7
Then يأتى الان دور جواب الشرط
ماذا سيحدث
PictureBox1.Visible = True
Label4.Visible = True
ماهيب محتاجة خلاص
Beep()
وصوت
End If
نهاية الشرط


***
خامسا
التعامل مع الديالوج(مهم)

يتم إدراج ديالوج عن طريق فتح Dialogs فى مربع الأدوات ToolBox
-عند إدراج ديالوج فإنة سييتم إدراجة خارج الفورم وبالتحديد فى البار أسفل الفورم
http://www.qahtaan.com/works/up/get....lqrv1200061558
-ديالوج إختيار اللونColor Dialog
قم بإدراج Button و ColorDialog
اكتب الكود التالى فى Button

كود:
Dim colors() As Integer = { _
&HFF, &H11FF, &H22FF, &H33FF, _
&H44FF, &H55FF, &H66FF, &H77FF, _
&H88FF, &H99FF, &HAAFF, &HBBFF, _
&HCCFF, &HDDFF, &HEEFF, &HFFFF}
ColorDialog1.CustomColors = colors
ColorDialog1.Color = Button1.BackColor
If ColorDialog1.ShowDialog() = DialogResult.OK Then
Button1.BackColor = ColorDialog1.Color
End If
عند اختيار لون فإنة يتم تغيير لون الزر إلى اللون الذى قمت باختيارة
................................................
......................

2-ديالوج فتح مجلد Browse For Folder
قم بإدراج Button وTextBox1 وFolderBrowserDialog
قم بوضع هذا الكود فى الزر Button

كود:
FolderBrowserDialog1.SelectedPath = ""
FolderBrowserDialog1.Description = _
"قم باختيار مجلد"
If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
TextBox1.Text = FolderBrowserDialog1.SelectedPath
End If
..................................................
.............................
3- ديالوج اختيار خصائص الخط Font Dialog
قم بإدراج Button وFontDialog
قم بوضع هذا الكود فى الزر Button

كود:
FontDialog1.Font = Me.Font
FontDialog1.Color = Me.ForeColor
FontDialog1.ShowColor = True
If FontDialog1.ShowDialog() = DialogResult.OK Then
Me.Font = FontDialog1.Font
Me.ForeColor = FontDialog1.Color
End If
لتغيير خصائص ونوع ولون الخط
..................................................
.............................
4-ديالوج فتح ملف OpenFileDialog
يستخدم هذا الديالوج لفتح أى ملف دون النظر إلى امتدادة
قم بإدراج Button و OpenFileDialog
قم بوضع هذا الكود فى الزر Button

كود:
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
MessageBox.Show(OpenFileDialog1.FileName)
End If
.................................................. .................................................. .............................
5-ديالوج فتح ملف بامتداد محدد OpenFileDialog
يستخدم هذا الديالوج لفتح ملف لة امتداد معين مثل ملف نص .txt أو ملف صورة .Bmp .....وهكذا
قم بإدراج
Button و OpenFileDialog
إذهب إلى خصائص OpenFileDialog ثم إلى Filter وقم بكتابة السطر التالى

كود:
Text (*.txt)|*.txt"

فى OpenFileDialog
نقوم بكتابة الكود التالى

كود:
For Each file_name As String In OpenFileDialog1.FileNames
If Not file_name.EndsWith(".txt") Then
MessageBox.Show("File '" & file_name & _
"' هذا ليس ملف نص", _
"نوع الملف غير معروف", _
MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
e.Cancel = True
Exit Sub
End If
Next file_name
فى Button

كود:

If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim file_names As String = Strings.Join(OpenFileDialog1.FileNames, " ")
MessageBox.Show(file_names)
End If

................................................
.............................
6-ديالوج حفظ ملف بأى امتداد SaveFileDialog
يستخدم هذا الديالوج لحفظ ملف بأى امتداد اختيارى
قم بإدراج Button و SaveFileDialog
إذهب إلى خصائص SaveFileDialog ثم إلى Filter وقم بكتابة السطر التالى

كود:
All Files (*.*)|*.*"
الكود
فى SaveFileDialog
الكود التالى

كود:
e.Cancel = True
وهذا الكود فى زر Button

كود:
If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
MessageBox.Show(SaveFileDialog1.FileName)
End If
.................................................. ..........
7-ديالوج حفظ ملف بامتداد محدد SaveFileDialog
يستخدم هذا الديالوج لحفظ ملف بامتداد محدد .txt أو .dat مثلا
قم بإدراج Button و SaveFileDialog
إذهب إلى خصائص SaveFileDialog ثم إلى Filter وقم بكتابة السطر التالى

كود:
Data Files (*.dat)|*.*"
الكود
فى SaveFileDialog
الكود التالى

كود:
If Not SaveFileDialog1.FileName.EndsWith(".dat") Then
MsgBox("File " & SaveFileDialog1.FileName & _
" is not a .dat file", _
MsgBoxStyle.Exclamation, _
"Invalid File Type")
e.Cancel = True
End If
وهذا الكود فى زر Button

كود:
If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
MessageBox.Show(SaveFileDialog1.FileName)
End If

أنتها درس اليوم

و يتبع......:1108277077:

محمد المعمري 14-01-2008 10:48 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
سادسا
ديالوج الطباعة

1-ديالوج إعداد الصفحة قبل الطباعة
قم بإدراج زر Button و PageSetupDialog
الكود
قم بالضغط على الفورم واكتب السطر التالى فى السطر الأول وقبل Declearation و Declearation هنا التى هى Public Class يعنى فى General

كود:
Imports System.Drawing.Printing
فى الزر Button قم بكتابة التالى

كود:
PageSetupDialog1.Document = New PrintDocument
If PageSetupDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
End If
.................................................. ..............................................
2- ديالوج الطباعة Print Dialog
قم بإدراج زر Button و PrintDialog و PrintDocument
الكود
قم بالضغط على الفورم واكتب السطر التالى فى السطر الأول وقبل Declearation

كود:
Imports System.Drawing.Printing
على الزر Button

كود:
If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PrintDocument1.Print()
End If
.................................................. ..............................................
3-ديالوج معاينة الصفحة قبل الطباعة Print Privew
قم بإدراج زر Button و PrintPreviewDialog
قم بكتابة هذا الكود فى Button

كود:
If PrintPreviewDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PrintPreviewDialog1.Document.Print()
End If



***
سابعا
Namespace System.Diagnostics(للقراءة)

إن مجموعة Namespace System.Diagnostics تقوم بتوفير الفئات Class التى تسمح بالتعامل مع عمليات النظام و عرض الأحداث ومقاييس الكفاءة داخل النظام وأنواع الفئات Class التى يوفرها
كالتالى
1-(System.Diagnostics.Event Log)
وهى توفر فئات Class التعامل مع الأحداث الخاصة بالنظام وقراءة مداخل الحدث وإنشاء وحذف سجلات الأحداث الخاصة بالنظام بالإضافة لمصادر الأحداث على الشبكة
وهى كالتالى
- سجلات الحدث Event Log
وهى التى تعطى إمكانية التفاعل مع سجلات أحداث الويندوز Windows Event Logs ولكن
ما هى سجلات أحداث الويندوز Windows Event Logs؟
.................................................. .................................................. .................................................. ...................
توضيح حول سجلات الأحداث
هى بيانات الحدث والحدث Event هى كلمة مشتقة من الحدوث وهو هنا يقصد بة كل ما قد حدث بالفعل أو ما هو قابل للحدوث من الأحداث مثل تشغيل برنامج معين أو إغلاقة والحالة التى كان عليها عند بدء التشغيل وكذلك
الإغلاق وما حدث فى الفترة بين البداء وإنهاء النشغيل مصحوبا بزمن الحدوث التى وقع فية الحدث إلى اخر الأمور المتعلقة بالحدث من أخطاء وما شابة وهى مقسمة كالتالى طبقا للنوع
1-تطبيقات Application
2-أمان Security
3-تثبيت Setup
4-النظام System
5- الأحداث المتقدمة Forwarded Events
ويمكن تقسيمها أيضا طبقا لطبيعة حدوثها كالتالى
1-أخطاء Error
2-تحذيرات Warning
3-معلومات Informations
4-تحكم ناجح Audit Success
5-تحكم فاشل Audit Failure
ويمكن إيجاد سجلات الأحداث من خلال تشغيل Event Viewr عارض الأحداث من خلال الذهاب إلى تشغيل Run فى قائمة إبداء وكتابة eventvwr كما يمكنك إيجاد الملفات التى تحوى سجلات الحدث فى
المسار التالى
كود:
%SystemRoot%\System32\Winevt\Log\
................
-مدخل السجل الفردى EventLogEntry
وهو المسئول عن إدخال وكتابة حدث واحد مفرد وهو فئة Class غير قابل للتوارث أى أنة غير قادر على تكرار نفسة
-مدخل السجلات المتعددة EventLogEntryCollection
وظيفتة تجميع عدد من السجلات الفردية وتحديد أعداد السجلات المسموح بها وكذلك أحجامها
-مثبت سجلات الحدث EventLogInstaller
وهو المسئول عن توزيع وتثبيت سجل الحدث للتطبيق المطلوب
-تصريح الوصول إلى سجلات الحدث EventLogPermission
وهو المسئول عن السماح والمنع للوصول إلى الكود عن طريق إعطاء أو عدم إعطاء تصاريح بذلك
-مفسر التصريح بالحدث EventLogPermissionAttribute
وهو المسئول عن تفسير وتوضيح الترخيص بسجل الحدث
-مدخل التصريح الفردى للوصول إلى سجلات الحدث EventLogPermissionEntry
-مدخل مجموعة التصريحات المجمعة إلى سجلات الحدثEventLogPermissionEntryCollection
-متتبع الحدث EventLogTraceListener
وهو المسئول عن تتبع مسار الحدث
2-(System.Diagnostics.Process)
وهى المسئولة عن توفير الفئات Class التى تقوم بإدارة ومراقبة العمليات Process داخل النظام وكذلك العمليات التى تحدث خلال الشبكة ومعرفة حالة العمليات كما أنها أيضا تقوم بتنظيم العمليات عن طريق تسمية كل عملية ووضع ID رقم تعريفى لكل عملية وكذلك عرض العمليات التى تقوم باستخدام المعالج ....الخ
ويوجد بعض أنواع الفئات Classالمتعلقة ب System.Diagnostics.Process ومنها
-العمليات Process
وهى المسئولة عن بداء وإيقاف عملية ما سواء كان هذا على الجهاز المحلى أو كمبيوتر أخر على شبكة الإتصال
-وحدة العمليات Process Module
وهى تقوم بتوضيح وعرض الملفات التى تستخدم العملية مثل ملفات DLL أوexe ..الخ
-وحدة تجميع العمليات Process Module Collection
وهى التى تقوم بتجميع كل مجموعة من Process Module وتوجبهها إلى الغرض التى تعمل من أجلة
-بيانات بداء العملية Process Start Info
وهى المسئولة عن ظبط القيم المستخدمة عند بداء عملية ما
-مسار العملية Process Thread
وهى التى تتحكم وتحدد مسار العملية داخل النظام
-مجمع مسار العمليات Process Thread Collection
وهى التى تحدد مسار مجمل العمليات داخل النظام
3-(System.Diagnostics.Performance Counter)
إن هذة الفئات Class تمكن من متابعة الكفاءة الخاصة بالنظام كما تمكن من تخصيص إطار خاص للتحكم بكفاءة النظام
4-(System.Diagnostics.Debug)
وهى توفر الفئات Class التى يمكنها تتبع الخطاء ومصدرة وهى تقوم بتنفيذ هذة المهمة كالتالى
-التأكد Assert
ويتم فى هذة المرحلة زيادة الحمل على العملية وفحص الحالة والتأكد إذا ما كان الخطاء كاذب
- Write/WriteLine
يتم تتبع مسار الخطاء وكتابة المعلومات عنة
- WriteIf/ WriteLineIf
يتم كتابة تقرير الخطاء وعرض رسالة الخطاء إذا تبين أن الخطاء خطاء حقيقى
5-(System.Diagnostics.Trac)
توفر هذة المجموعة من الفئات أدوت تتبع مسارات العمليات والأحداث ومعرفة خصائصها

***
ثامنا
فكرة سريعة عن الفئات Classes (للقراءة)


Notes about Classes In VS.Net
هو المكونات الذى تستخدمها فى الفورم والديالوج والزر وكل مكونات الفيجوال ستوديو عبارة عن Class وهذة Class يقوم Dotnet FrameWork بإمداد الفيجوال استوديو بها
وللفئة (Class) وجهين كوجهى العملة
الوجة الأول :وهو الصورة النصية بمعنى أنك تتعامل معة على أنة كود وهذا التعامل تعامل مطاط فطالما هو فى صورة كود فيمكنك تعديلة وتغيير خصائصة
الوجة الاخر :Namespace وهو نظام تقسيمى تم على أساسة تصنيف الفئات(Classes) طبقا لوظيفتها و Namespace هى التى تكون الفجوال ستوديو دوت نت والفئات فى Namespace تكون ناضجة وجاهزة للعمل تقريبا ولكن بعد توجيهها إلى العمل وتخصيص الإحداثيات النهائية لها ويتم ذلك إما عن طريق تغيير خصائصها من Properties صفحة الخصائص أو عن طريق كتابة كود أو الإثنين معا أو بدون ذلك مثل TextBox حيث أنك تستطيع تحديد وظيفتة دون المساس بة أو تغيير أى من خصائصة والتحكم بة من خلال زر ويتم تقسيم Namespace إلى
1-System.Collection
2-System.Diagnostics
3-System.Data
4-System.IO
5-System.Math
6-System.Reflection
7-System.Security
إذن الفئات Classes
هى جزء من أجزاء البرنامج الذى تقوم بإنشاءة والبرنامج هو مجموعة Classes وكل Class يحتوى على خصائص الجزء الذى يمثلة وقد تكون هذة الخاصية شكل أو سلوك أو وظيفة ومجموع الفئات Class هى التى تعطى فى النهاية المشروع الذى سيصبح برنامجا فيما بعد وليس من الضرورى أن يكون Class شىء نراة فى صورة مادية مثل الموجودة فى ToolBox فمن الممكن أن يكون سطرا من الأوامروالفئات Classes مخزنة داخل الدوت نت بلغة تسمى Microsoft Intermediate Languageويمكن إختصارها إلى MSLI أى اللغة الوسيطة وهى وسيطة لأن أى لغة من لغات الفيجوال ستوديو تستطيع فهمها والتعامل معها بدون عامل وسيط VB.Net أو C++.Net….الخ وعلى ذلك فأيا كانت اللغة الذى تعمل من خلالها فإنة يمكنك إستدعاء أحد الفئات Classes الموجودة فى Primary Microsoft Dotnet Framwork Components وبعد أن تنتهى من العمل فإنة تحويل نواتج العمل مرة أخرى إلى اللغة الوسيطة (MSLI)وذلك عن طريق Common Language Runtime وتختصر إلى CLR
سؤال :هل يمكن إنشاء أو استحداث فئة Class غير متوفرة فى مكونات فيجوال ستوديو
إجابة:نعم
سؤال: كيف هذا
إجابة:هكذا
-قم بفتح الفيجوال ستوديو ثم من قائمة File اختر New Project
-قم باختيار Class Liberary
نفترض أننا نريد عمل Class للوحة دخول تحتوى على
UserName و password وUserID
نقوم بإعادة تسمية Class1 ونسمية Login
-نقوم أولا بالإعلان عن المتغيرات الثلاثة

كود:

Private _UserID As Integer
Private _UserName As String
Private _password As String
ثم تحديد بعض الخصائص
-تحديد خصائص UserID

كود:
Public ReadOnly Property UserID() As Integer
Get
Return _empID
End Get
End Property
-تحديد خصائص UserName

كود:

Public Property UserName()
Get
Return _UserName
End Get
Set(ByVal Value)
_UserName = Value
End Set
End Property
-تحديد خصائص password

كود:

Public Property Password() As String
Get
Return _password
End Get
Set(ByVal Value As String)
If Len(Value) >= 6 then
_password = Value
Else
Throw New Exception _
("Password must be at least 6 characters.")
End If
End Set
End Property
هذة فكرة سريعة عن Class

***
تاسعا
التعامل مع القوائم(مهم)
-مشروع جديد
-قم بإدراج MenuStrip من خلال Menus&Toolbars
-قم بالضغط على MenuStrip بالماوس يظهر لك مربع صغير فى أقصى النافذة مكتوب عليةType Here

http://www.qahtaan.com/works/up/get....uwxy1200156263

سنقوم الان بإنشاء أول قائمة منسدلة وهى قائمة Fileملف
القائمة الأولى ملف File
-فى المربع الفارغ الذى يظهر لك الان قم بكتابة اسم للقائمة وهو ملف
-ظهر لنا الان MenuStrip فرعى منسدل من القائمة ملف
سنقوم الان بتحديد البنود التى نريد وضعها من خلال هذة القائمة المنسدلة
-كليك يمين بالماوس على القائمة ملف التى قمنا بإنشاءها الان ومن القائمة التى تظهر قم باختيار Edit DropDown Item

http://www.qahtaan.com/works/up/get....7iu81200246691
-تظهر لنا الان نافذة جديدة سنقوم الان بإضافة MenuItm جديد عن طريق الضغط على Add ثم بعد ذلك سنقوم بالضغط على Dropper لتظهر قائمة بالمكونات كما هو موضح

http://www.qahtaan.com/works/up/get....27vb1200338726
ثم نقوم بإضافة فاصل Separator وذلك عن طريق الضغط على Dropper ثم اختيار Separator ثم Add
-نقوم الان بإضافة عدد 3 MenuItm ثم Separator ثم عدد 3 MenuItm ثم Separator ثم MenuItm واحد على الترتيب
-لدينا الان عدد 8 عناصر فى القائمة المنسدلة سنقوم الان بتسميتها كالتالى

http://www.qahtaan.com/works/up/get....opvw1200338840
-قم بعمل كليك على ToolStripMenuItem تظهر لك خصائصة فى النافذة التى على اليمين
-إذهب إلى Text وقم بتغيير الإسم
من ToolStripMenuItem1 إلى جديد
من ToolStripMenuItem2 إلى فتح
من ToolStripMenuItem3 إلى حفظ
من ToolStripMenuItem4 إلى حفظ باسم
من ToolStripMenuItem5 إلى إعداد الصفحة
من ToolStripMenuItem6 إلى معاينة
من ToolStripMenuItem7 إلى طباعة
من ToolStripMenuItem8 إلى إنهاء
يمكننا الان إضافة مزيد من الأشياء مثل وضع أيكونة أو صورة لبعض العناصر
-كليك يمين على ملف ثم Edit DropDown Item قم باختيار أحد العناصر وليكن ToolStripMenuItem1 ثم اذهب إلى الخصائص ثم اذهب إلى Image وقم بالضغط على علامة المستعرض ثم Local Resource ثم Import وقم باختيار صورة مناسبة ولتكن بمقاس 16X16

http://www.qahtaan.com/works/up/get....bitw1200338882

الان انتهينا من ملف نعود الان إلى الواجهة الرئيسية ثم نقوم بإنشاء القائمة الثانية


القائمة الثانية تحرير Edit
-قم بإنشاء قائمة جديدة بالضغط على المربع Type Here الموجود بجانب ملف وقم بتسميتة تحرير

http://www.qahtaan.com/works/up/get....lprx1200338963
-نقوم بإدراج عدد 2 ToolStripMenuItem ثم Separator ثم عدد 2 ToolStripMenuItem ثم Separator ثم عدد1 ToolStripMenuItem ثم Separator ثم عدد 3 ToolStripMenuItem ثم Separator ثم واحد ToolStripMenuItem بنفس الطريقة المتبعة فى قائمة ملف ثم نقوم بتسميتها كالتالى
-فى نافذة الخصائص إذهب إلى Text وقم بتغيير الإسم
من ToolStripMenuItem9 إلى تراجع
من ToolStripMenuItem10 إلى إعادة
من ToolStripMenuItem11 إلى بحث
من ToolStripMenuItem12 إلى بحث واستبدال
من ToolStripMenuItem13 إلى تحديد الكل
من ToolStripMenuItem14 إلى نسخ
من ToolStripMenuItem15 إلى قص
من ToolStripMenuItem16 إلى لصق
من ToolStripMenuItem17 إلى إدراج صورة


القائمة الثالثة الخطوط والألوان
-قم بإنشاء قائمة جديدة بالضغط على المربع Type Here الموجود بجانب تحرير وقم بتسميتة الخطوط والألوان
نقوم بإدراج عدد 1 ToolStripMenuItem ثم Separator ثم ToolStripMenuItem ثم Separator ثم 4 ToolStripMenuItem ثم Separator ثم ToolStripMenuItem ثم Separator
قم بتسميتها على الترتيب التالى (نوع الخط-لون الخط-غامق-مائل-خط سفلى-عادى-لون خلفية الصفحة)


القائمة الرابعة تنسيق الفقرة
سنقوم بإدراج عدد 2 ToolStripMenuItem ونقوم بتسميتهما( مسافة بادئة –محاذاة) على الترتيب
-نقوم بعمل قائمة فرعية على قائمة مسافة بادئة وتحتوى على 5 عناصر (بدون-بمقدار5-بمقدار10-بمقدار15-بمقدار20) على الترتيب ويمكن ذلك مباشرة عن طريق الخصائص ثم الذهاب إلى DropDownItem ثم الضغط على Collection
-نقوم بعمل قائمة فرعية على العنصر محاذاة تحتوى على 3 عناصر(محاذاة إلى اليسار-توسيط-محاذاة إلى اليمين)
http://www.qahtaan.com/works/up/get....rtux1200339090
القائمة الخامسة تعداد نقطى
وتحتوى على عنصرين فقط وهما (إضافة-إزالة)

أرصعو هنا يالذيابه


و بهذا أنتها درس هذا اليوم و يتبع,,,,,,,,.................
تحياتي لصبيان قحطان وين ما كانو

محمد المعمري 15-01-2008 10:12 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
التعامل مع شريط الأدوات
-نقوم الان بإدراج ToolStrip :deal:
-قم بعمل كليك على مربع الإدخال كما هو موضح بالصورة التالية
http://www.qahtaan.com/works/up/get....krvy1200420315
-قم بالضغط على Button ليتم إدراجة داخل Tool Strip شريط الأدوات
-المطلوب الان إدراج عدد 11 زر و4 فاصل ترتيبها كالتالى:deal:
3Button ثم Strip ثم 1Button ثم Strip ثم 3Button ثم Strip ثم 3Button ثم Strip ثم 1Button
http://www.qahtaan.com/works/up/get....losw1200420315
-نقوم الان بتسمية هذة الأزرار وذلك عن طريق كليك يمين على الزر ثم اختيار Properties ثم الذهاب إلى نافذة الخصائص وتغيير الاسم الموجود فى الخاصية Text
تكون أسماء الأزرار على الترتيب التالى
جديد-فتح-حفظ-خط-محاذاة لليمين-توسيط-محاذاة لليسار-غامق-مائل –خط سفلى-بحث
-نقوم الان بتغيير صورة كل زر طبقا لإسمة باستخدام نفس الأيكونات المرسلة بالمثال السابق
ويتم التغيير بالذهاب إلى Properties ثم Image واستخدام نفس الطريقة المتبعة فى المثال السابق
يمكنك عمل شريط الأدوات هذا فى مشروع منفصل كتدريب أو إضافتة إلى المشروع السابق فيصبح الان المشروع بهذا الشكل
http://www.qahtaan.com/works/up/get....movy1200423683
وبذلك نكون قد انتهينا من الجزء العلوى من هذا الشىء

ويتبع معا أمل التواصل:confused:

محمد المعمري 19-01-2008 12:20 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
الحادي عشر
التحقق من النص Text Validation
Masked TextBox and Text Valdation
سنتعرف اليوم على Masked TextBox و طرق تخصيص مربع النص TextBox وتحديد إدخالات معينة فى TextBox وكذلك المنع والسماح لعدد معين من الحروف والرموز والصيغ داخل مربع النص TextBox
أولا: MaskedTextBox
-نقوم بعمل مشروع جديد ثم نقوم بإدراج MaskedTextBox من خلال ToolBox
http://www.qahtaan.com/works/up/get....g7vd1200690557
كليك يمين بالماوس على MaskedTextBox ثم قم باختيار SetMask يظهر لك الان نافذة Input Mask ويوجد بها قائمة بأنواع الماسكات الممكن استخدامها داخل MaskedTextBox ويمكن تجربة اختيار أحد الأنواع وتجربة كتابة النص بداخلة لمشاهدة النتيجة
http://www.qahtaan.com/works/up/get....ltvx1200690557
ثانيا :Text Validation
إنشاء حدث الكتابة فى مربع النص
لا بد لنا من فهم معنى حدث (Event)
هى كلمة مشتقة من الحدوث ومعناها فى موضوعنا هو تأخير ظهور الوظيفة التى قمنا بإنشائها إلى أن يقع أمر ما
-KeyPress
وهو من خلال اسمة يوضح وظيفتة الضغط على زر
نقوم بفتح مشروع جديد يحتوى على 12 مربع نص TextBox و9 عناوين Label ويمكن وضعها كما بالشكل الاتى
http://www.qahtaan.com/works/up/get....rsux1200690631
منع كتابة زر معبن داخل مربع النص TextBox1
قم بكتابة الكود التالى


كود:
Private Sub TextEV1_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = CChar("r") Then e.Handled = True
End Sub
وبالنظر إلى الكود جيدا نجد أن الجزء الفعال فى الكود هو

كود:
If e.KeyChar = CChar("r") Then e.Handled = True
والمعنى عند كتابة الرمز r فإن المنع =حقيقى يعنى قم بمنع ذلك
و TextEV هذة تسمي اختيارية ممكن التسمية TextEV1 و TextEV2 إلخ أو أى تسمية
لوحة المفاتيح مقسمة إلى ثلاثة أجزاء (أرقام و حروف و رموز) كل الأمثلة التالية تقوم بمنع الرموز تلقائيا
2- منع الأرقام والسماح للحروف بدلالة IsNumber فى TextBox2
كود:
Private Sub TextEV2_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox2.KeyPress
If Char.IsNumber(e.KeyChar) Then e.Handled = True
End Sub
لو كان المكتوب رقما قم بمنعة
3- السماح للإرقام ومنع الحروف بدلالة IsNumber فى TextBox3

كود:
Private Sub TextEV3_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox3.KeyPress
If Char.IsNumber(e.KeyChar) = False Then e.Handled = True
End Sub
إذا لم يكن المكتوب رقم ....الخ
4- منع الأرقام والسماح للحروف بدلالة IsLetter فى TextBox4
وهى تعطى نفس النتيجة الموجودة فى 2 ولكن باستخدام IsLetter
كود:
Private Sub TextEV4_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox4.KeyPress
If Char.IsLetter(e.KeyChar) = False Then e.Handled = True
End Sub5
- السماح للإرقام ومنع الحروف بدلالة IsLetter فى TextBox5
وهى نفس 3 ولكن بدلالة IsLetter
كود:
Private Sub TextEV5_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox5.KeyPress
If Char.IsLetter(e.KeyChar) Then e.Handled = True6

-السماح لكل من الأرقام والحروف فى TextBox6
كود:
Private Sub TextEV6_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox6.KeyPress
If Char.IsLetterOrDigit(e.KeyChar) = False Then e.Handled = True
End Sub
وكما نرى فإن الرموز والإشارات والعلامات ممنوعة فى كل الأحوال وعلى ذلك نحتاج إلى طريقة للسماح بها سنفترض أن لدينا مربع نص يمكنة أن يحتوى على رقم أو رقم عشرى(.) أو – أو+
7-للسماح بإضافة علامة أو رمز فى TextBox7
إذا أردنا أن نسمح للأرقام العشرية فقط
كود:
Private Sub TextEV7_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) _
Handles TextBox7.KeyPress
If Char.IsNumber(e.KeyChar) = False Then
If e.KeyChar = CChar(".") Then
e.Handled = False
Else
e.Handled = True
End If
End If
End Sub

هنا قمنا بالسماح لرمز واحد فقط وهو العلامة العشرية فإذا أردنا السماح برموز أخرى فكما بالمثال التالى
كود:
Private Sub TextEV7_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) _
Handles TextBox7.KeyPress
If Char.IsNumber(e.KeyChar) = False Then
If e.KeyChar = CChar(".") Or e.KeyChar = CChar _
("-") Or e.KeyChar = CChar("+") Then
e.Handled = False
Else
e.Handled = True
End If
End If
End Sub
وكما نرى قمنا بالسماح لعلامتى – و+
8-لتطبيق الحدث على مجموعة من مربعات النص TextBox8 و TextBox9 و TextBox10
أما إذا أردنا أن نقوم بتطبيق الحدث على مجموعة من مربعات النصوص دفعة واحدة فإليكم الكيفية
كود:
Private Sub TextEV8_KeyPress(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles _
TextBox8.KeyPress, TextBox9.KeyPress, TextBox10.KeyPress
If Char.IsNumber(e.KeyChar) = False Then e.Handled = True
End Sub9
- منع الحروف الصغيرة فىTextBox 11
كود:
Private Sub TextEV9_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox11.KeyPress
If Char.IsLower(e.KeyChar) Then e.Handled = True
End Sub10
- منع الحروف الكبيرة فى TextBox 12
كود:
Private Sub TextEV10_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox12.KeyPress
If Char.IsLower(e.KeyChar) = False Then e.Handled = True
End Sub
حمل المشروع من هنا يا ذيبان

محمد المعمري 20-01-2008 05:06 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
الأمثلة:deal:
المجموعة الأولى:banana:
1.1-إظهار نص داخل مربع نص من خلال الضغط على زر.
مثال1
إظهار نص داخل مربع نص من خلال الضغط على زر
الغرض من هذا المثال هو شرح لكيفية التعامل مع الفيجوال بيسيك 2005 والتعرف علية عمليا
الخطوات العامة لإنشاء برنامج باستخدام الفيجوال بيسيك 8
1-البداية
-قم بفتح برنامج الفيجوال ستوديو 2005 من القائمة إبداء ثم كافة البرامج ونها إختر Microsoft Visual Studio 2005 دبل كليك تفتح لك الشاشة الرئيسية.
-إذا كنت قد أعددت الفيجوال ستوديو للعمل لاستخدام فيجوال بيسيك فقط سوف يفتح تلقائيا
- إذا كنت قد أعددت الفيجوال ستوديو للعمل لااستخدام لغات أخرى اختر الفيجوال بيسيك من القائمة التى تظهر أو اختر New Project
2-مرحلة تصميم الشكل العام
-قم بفتح مشروع جديد New Project من القائمة File
-من النافذة التى تظهر اختر Windows Application
-يظهر لنا الان شكل جديد يسمى Form1 وهذا سوف بكون مسرح العمليات
-لا بد لنا من أدوات نستخدمها إذن لا بد لنا من شريط الأدوات من خلال Tool Bar وهو شريط الأدوات الأفقى فى أعلى الصفحة إضغط View ومن القائمة المنسدلة إضغط Toolbox
يظهر لك صندوق الأدوات رأسيا فى أقصى اليسار ماذا لو لم يظهر فإن هذا يعنى أنة قد حدث شىء ما لمربعات الحوار ككل ويمكنك إصلاح كافة المحتويات كالتالى من البار العلوى اختر Window من القائمة المنسدلة اختر
Rest Window Lyout فيتم العودة إلى الوضع الإفتراضى
-يظهر لنا الان مربع الأدوات
3-مرحلة تصميم المكونات العامة
-قم بالضغط على All Windows Forms فى Toolbox تجدة مرتبا ترتيبا أبجديا ABCD…..Z

http://www.qahtaan.com/works/up/get....rtuw1200836747

-إذهب إلى العنصر الاتى TextBox مربع نص وسوف تجدة أسفل القائمة باستخدام الماوس قم بعمل نقرة مزدوجة سوف يظهر لك فى أعلى Form1 يسار قم بتحريكة كم تشاء وليكن إلى المنتصف تستطيع تغير حجمة أفقيا ولكن رأسيا لا إلا إذا قمت بالضغط فى أقصى الزاوية العليا يمين كما هو محدد فى الصورة وقمت باختيار MultiLine ومعناها عديد الأسطر الان فقط يمكننا تغيير حجمة رأسيا

http://www.qahtaan.com/works/up/get....6gp31200836747

-نقوم بنفس الطريقة بإدراج Label ومعناها عنوان أو لافتة(يافطة) وأيضا Button وهو زر فيصبح عندنا ماهو موجود فى الشكل التالى

http://www.qahtaan.com/works/up/get....rsvy1200836910

-الان نريد أن نرى ما فعلناة هناك طريقتان قم بالضغط فى لوحة المفاتيح على F5 الطريق الثانية كالتالى من البار العلوى اختر Debug ومن القائمة المنسدلة اختر Start Debugging سوف يظهر لك الشكل الذى قمنا بإتشاءة للعودة إلى القائمة الرئيسية قم بإغلاق الإطار الذى ظهر الان

http://www.qahtaan.com/works/up/get....4ag81200836910

4-مرحلة تخصيص المكونات
-سوف نبداء الان بإعطاء خواص بسيطة للمكونات التى قمنا بإنشائها
-كليك يمين بالماوس على العنصر الذى نربد تخصيصة نبداء ب Label كليك يمين بالماوس من القائم التى تظهر نختار Properties نلا حظ الان ظهور قائمة الخصائص فى أسفل الشاشة يمين راسيا كما هو موضح فى الشكل التالى

http://www.qahtaan.com/works/up/get....qsuv1200837585

نقوم بتغيير الإسم من Label إلى المشاغب وبنفس الطريقة على Button1 ونقوم بتسميتة منتدى البرمجة سوف يكون الزر صغيرا يمكنك تغيير حجمة باستخدام الماوس ثم F5 لنرى النتيجة
5-مرحلة كتابة الكود
- قم بعمل نقرة مزدوجة على TextBox الذى هو فى المنتصف الان تظهر لك لوحة الكود وأن المكان الذى قمت بالتأشير علية باللون الوردى هو المكان الذى سوف نكتب فية الكود

http://www.qahtaan.com/works/up/get....8jhx1200837585

-قم بكتابة هذا الكود

كود:
TextBox1.Text="مبروك على الجميع منتدى البرمجة"

نعود الان إلى الإطار الرئيسى عن طريق إغلاق هذا الإطار أو نقرة مزدوجة على Form1.vb الموجودة فى الإطار الأيمن المسمى Solution Explorer
-بعد أن عدنا إلى الإطار الرئيسى قم بعمل نقرة مزدوجة على Button1 التى أصبحت الان منتدى البرمجة تفتح لك صفحة الكود أرجو ملاحظة أن الكود الخاص بهذا العنصر يقع أسفل الكود الذى كتبناة منذ قليل وفى المكان المناظر للون الوردى السابق قم بكتابة هذا الكود

كود:
TextBox1.Text=" "

قم بتنفيذ البرنامج عن طريق F5 قم بالضغط على زر منتدى البرمجة يظهر لك النص الذى قمت بكتابتة وهو مبروك على الجميع مجالس قحطان

http://www.qahtaan.com/works/up/get....pstu1200837645

إنتهى مع أمل التواصل:46_asmilies-com:

محمد المعمري 20-01-2008 05:10 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
الأمثلة:deal:
المجموعة الأولى:banana:
1.1-إظهار نص داخل مربع نص من خلال الضغط على زر.
مثال1
إظهار نص داخل مربع نص من خلال الضغط على زر
الغرض من هذا المثال هو شرح لكيفية التعامل مع الفيجوال بيسيك 2005 والتعرف علية عمليا
الخطوات العامة لإنشاء برنامج باستخدام الفيجوال بيسيك 8
1-البداية
-قم بفتح برنامج الفيجوال ستوديو 2005 من القائمة إبداء ثم كافة البرامج ونها إختر Microsoft Visual Studio 2005 دبل كليك تفتح لك الشاشة الرئيسية.
-إذا كنت قد أعددت الفيجوال ستوديو للعمل لاستخدام فيجوال بيسيك فقط سوف يفتح تلقائيا
- إذا كنت قد أعددت الفيجوال ستوديو للعمل لااستخدام لغات أخرى اختر الفيجوال بيسيك من القائمة التى تظهر أو اختر New Project
2-مرحلة تصميم الشكل العام
-قم بفتح مشروع جديد New Project من القائمة File
-من النافذة التى تظهر اختر Windows Application
-يظهر لنا الان شكل جديد يسمى Form1 وهذا سوف بكون مسرح العمليات
-لا بد لنا من أدوات نستخدمها إذن لا بد لنا من شريط الأدوات من خلال Tool Bar وهو شريط الأدوات الأفقى فى أعلى الصفحة إضغط View ومن القائمة المنسدلة إضغط Toolbox
يظهر لك صندوق الأدوات رأسيا فى أقصى اليسار ماذا لو لم يظهر فإن هذا يعنى أنة قد حدث شىء ما لمربعات الحوار ككل ويمكنك إصلاح كافة المحتويات كالتالى من البار العلوى اختر Window من القائمة المنسدلة اختر
Rest Window Lyout فيتم العودة إلى الوضع الإفتراضى
-يظهر لنا الان مربع الأدوات
3-مرحلة تصميم المكونات العامة
-قم بالضغط على All Windows Forms فى Toolbox تجدة مرتبا ترتيبا أبجديا ABCD…..Z

http://www.qahtaan.com/works/up/get....rtuw1200836747

-إذهب إلى العنصر الاتى TextBox مربع نص وسوف تجدة أسفل القائمة باستخدام الماوس قم بعمل نقرة مزدوجة سوف يظهر لك فى أعلى Form1 يسار قم بتحريكة كم تشاء وليكن إلى المنتصف تستطيع تغير حجمة أفقيا ولكن رأسيا لا إلا إذا قمت بالضغط فى أقصى الزاوية العليا يمين كما هو محدد فى الصورة وقمت باختيار MultiLine ومعناها عديد الأسطر الان فقط يمكننا تغيير حجمة رأسيا

http://www.qahtaan.com/works/up/get....6gp31200836747

-نقوم بنفس الطريقة بإدراج Label ومعناها عنوان أو لافتة(يافطة) وأيضا Button وهو زر فيصبح عندنا ماهو موجود فى الشكل التالى

http://www.qahtaan.com/works/up/get....rsvy1200836910

-الان نريد أن نرى ما فعلناة هناك طريقتان قم بالضغط فى لوحة المفاتيح على F5 الطريق الثانية كالتالى من البار العلوى اختر Debug ومن القائمة المنسدلة اختر Start Debugging سوف يظهر لك الشكل الذى قمنا بإتشاءة للعودة إلى القائمة الرئيسية قم بإغلاق الإطار الذى ظهر الان

http://www.qahtaan.com/works/up/get....4ag81200836910

4-مرحلة تخصيص المكونات
-سوف نبداء الان بإعطاء خواص بسيطة للمكونات التى قمنا بإنشائها
-كليك يمين بالماوس على العنصر الذى نربد تخصيصة نبداء ب Label كليك يمين بالماوس من القائم التى تظهر نختار Properties نلا حظ الان ظهور قائمة الخصائص فى أسفل الشاشة يمين راسيا كما هو موضح فى الشكل التالى

http://www.qahtaan.com/works/up/get....qsuv1200837585

نقوم بتغيير الإسم من Label إلى المشاغب وبنفس الطريقة على Button1 ونقوم بتسميتة منتدى البرمجة سوف يكون الزر صغيرا يمكنك تغيير حجمة باستخدام الماوس ثم F5 لنرى النتيجة
5-مرحلة كتابة الكود
- قم بعمل نقرة مزدوجة على TextBox الذى هو فى المنتصف الان تظهر لك لوحة الكود وأن المكان الذى قمت بالتأشير علية باللون الوردى هو المكان الذى سوف نكتب فية الكود

http://www.qahtaan.com/works/up/get....8jhx1200837585

-قم بكتابة هذا الكود

كود:
TextBox1.Text="مبروك على الجميع منتدى البرمجة"

نعود الان إلى الإطار الرئيسى عن طريق إغلاق هذا الإطار أو نقرة مزدوجة على Form1.vb الموجودة فى الإطار الأيمن المسمى Solution Explorer
-بعد أن عدنا إلى الإطار الرئيسى قم بعمل نقرة مزدوجة على Button1 التى أصبحت الان منتدى البرمجة تفتح لك صفحة الكود أرجو ملاحظة أن الكود الخاص بهذا العنصر يقع أسفل الكود الذى كتبناة منذ قليل وفى المكان المناظر للون الوردى السابق قم بكتابة هذا الكود

كود:
TextBox1.Text=" "

قم بتنفيذ البرنامج عن طريق F5 قم بالضغط على زر منتدى البرمجة يظهر لك النص الذى قمت بكتابتة وهو مبروك على الجميع مجالس قحطان:71_asmilies-com:

http://www.qahtaan.com/works/up/get....pstu1200837645

إنتهى مع أمل التواصل:1107953448:

محمد المعمري 22-01-2008 10:28 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
1.2-إدراج صورة وعرضها داخل الفورم
مثال2:1107953627:
إدراج صورة وعرضها داخل الفورم
1- نقوم بعمل مشروع جديد
2- نقوم بإدراج عدد 2 Botton واحد Label و أداة PictureBox داخل الفورم ونقوم بتنظيمها فى شكل مقبول

http://www.qahtaan.com/works/up/get....gqr91201029185

3- نقوم الان بتغيير بعض خصائص أداة PictureBox مربع الصورة كالتالى
-كليك يمين بالماوس على مربع الصورة PictureBox ثم Properties أو نقوم بالوصول إليها عن طريق قائمة Properties فى أقصى اليمين كما هو موضح بالشكل
التالى

http://www.qahtaan.com/works/up/get....losx1201029364

-قم بتغيير Visibleلتصبح False بدلا من True ومعنى visible يعنى مرئى أو يمكن مشاهدتة ومعنى true يعنى حقيقى ووجود هذة الخاصية فى الوضع true يجعلها مرئية باستمرار أما الوضع false الذى يعنى كاذب أو مزيف فيعنى أن ما بداخل أداة الصورة سيكون مخفى

http://www.qahtaan.com/works/up/get....27p41201029421

-قم بتغيير الخاصية SizeMode إلى StretchImage ومعنى ذلك أن الصورة ستظهر كاملة وستملىء الإطار
4- سوف نقوم الان بتغيير بعض خصائص Label1
-إذهب إلى خصائص Label1 قم بتغيير Visibleلتصبح False بدلا من True
5- قم بتغيير اسم Button1 إلى عرض و Button2 إلى إنهاء وذلك عن طريق الذهاب إلى خصائص كل واحد منهما وتغيير الإسم من الخاصية Text ثم قم بتجربة البرنامج عن طريق F5

http://www.qahtaan.com/works/up/get....ltwx1201029638

6- سوف نقوم الان بإعطاء الوظائف لمكونات المشروع
-إذهب إلى خصائص PictureBox كما هو موضح بالنقطة رقم 3 ثم إلى Image ثم قم بالضغط على علامة المستعرض تظهر لك نافذة Select Resource إختيار المصدر قم بالضغط على Local Resource ثم Import وقم باختيار أى صورة من جهازك
إيضاح
عند اختيارك الخيار الاخر وهو Project Resource File ثم Import سيتم إنشاء مجلد يسمى Resource يتم حفظ الصورة بداخلة ولن يتم دمج الصورة داخل الملف التنفيذى للمشروع

http://www.qahtaan.com/works/up/get....os3i1201029738

-إذهب إلى خصائص العنوان Label1 و فى الخاصية Text قم بتغيير كلمة Label1 إلى اسم الصورة الذى اخترتها فى الخطوة السابقة
7- كتابة الكود
-ضغطة مزدوجة بالماوس على الزر عرض ثم قم بكتابة الكود التالى

كود:

PictureBox1.Visible = True
Label1.Visible = True

ومعنى هذا الكود :
عند القيام بالضغط على هذا الزر قم بإظهار محتوى صندوق الصورة
عند القيام بالضغط على هذا الزر قم بإظهار محتوى العنوان Label1
-ضغطة مزدوجة بالماوس على الزر إنهاء وقم بكتابة الكود التالى

كود:
End

ومعناة واضح نهاية أو إغلاق
قم بتنفيذ المشروع بالضغط على F5
إضغط على عرض لرؤية الصورة وعنوانها و اضغط على إنهاء لإغلاق البرنامج

http://www.qahtaan.com/works/up/get....lqtu1201029787

إنتهى مع أمل الفائده للجميع:untitled:

محمد المعمري 23-01-2008 10:49 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
1.3-رقم الحظ

المثال الثالث رقم الحظ


الهدف من المشروع
-توليد أرقام عشوائية
-إظهار الصورة المدمجة فقط عند ما يتم توليد رقم معين
سوف تظهر الصورة فقط إذا كان رقم 7 من ضمن الأرقام العشوائية الناتجة مع إعطاء صوت للتنبية عند الحصول على الرقم الهدف
1-مشروع جديد
2-قم بإدراج عدد 2Button و 4 Label و1 PictureBox يعنى 2زر و 4 عناوين ومربع صورة ونقوم بظبط الشكل العام
3-تخصيص المكونات
تغيير خصائص Label1 و Label2 و Label3
لكى لا تقوم بتخصيص كل عنوان على حدة و تخصيص العناوين الثلاثة دفعة واحدة اتبع ما يلى:
قم بعمل كليك على Lable1 ثم اضغط Shift ولا ترفع إصبعك من على Shift حتى تنتهى من التحديد
قم بعمل كليك على الزر الثانى ثم على الزر الثالث
الان قم برفع إصبعك من على Shift
أى تخصيص نقوم بعملة الان سينطبق على الثلاثة مجتمعين
-إذهب إلى لوحة الخصائص وقم بتغيير ImageAlignإلى Middle Center وهذا سيؤدى إلى أن المحتوى سيظهر فى المنتصف تماما
-فى نفس لوحة الخصائص إذهب إلى BorderStyle وقم بتغييرها إلى FixedSingle

http://www.qahtaan.com/works/up/get....npqx1201110807

نقوم أيضا بتغيير خصائص الخطوط
-إذهب إلى الخاصية Font ثم اضغط على علامة + واسمها باللغة الإنجليزية ellipsis تفتح لك قائمة بخصائص الخط نقم بتغييرها كالتالى
قم بتغيير نوع الخط إلى Times New Roman أو كما تشاء
قم بتغيير Size حجم الخط إلى 25 أو كما تشاء
قم بتغيير نمط الخط Bold إلى True
-إذهب إلى الخاصية Text وقم بتغيير النص إلى 0 يعنى رقم صفر
-إذهب إلى الخاصية ForeColor وقم بتغيير اللون أو كما تريد
تغيير خصائص الأزرار
-قم بتسمية أحد الأزرار تشغيل والاخر إنهاء
تخصيص صندوق الصورة
إذهب إلى خصائص مربع الصورة ثم قم بتغيير الخصائص التالية
- إذهب إلى Image ثم قم بالضغط على علامة المستعرض تظهر لك نافذة Select Resource إختيار المصدر قم بالضغط على Local Resource ثم Import وقم باختيار أى صورة من جهازك
-قم بتغيير الخاصية SizeMode إلى StretchImage
-قم بتغيير Visible لتصبح False بدلا من True
لمعرفة المزيد عن طريقة تخصيص مربع الصورة قم بالرجوع إلى مثال2
تخصيص Label4
-قم بتسمية العنوان باسم الصورة التى اخترتها وقم بتغيير لون الخط ونوعة.......الخ حسبما تريد
-قم بتغيير الخاصية Visible إلى False
4-كتابة الكود
-قم بالضغط ضغطة مزدوجة على أى منطقة خالية فى الشكل Form1 واكتب الكود التالى


كود:
Randomize()


-ضغطة مزدوجة على الزر تشغيل وكتب الكود التالى


كود:

PictureBox1.Visible = False
Label1.Text = CStr(Int(Rnd() * 10))
Label2.Text = CStr(Int(Rnd() * 10))
Label3.Text = CStr(Int(Rnd() * 10))
If (Label1.Text = "7") Or (Label2.Text = "7") _
Or (Label3.Text = "7") Then
PictureBox1.Visible = True
Label4.Visible = True
Beep()
End If
-ضغطة مزدوجة على الزر إنهاء واكتب الكود التالى


كود:
end

يمكنكم وضع رقم اخر غير رقم7 للتجربة
قم بتطبيق العمل عن طريق F5
http://www.qahtaan.com/works/up/get....ygb31201110807

إضغط على الزر تشغيل حتى يتم ظهور أرقام تحتوى على الرقم 7 فتظهر الصورة وتسمع صوت التنبية
إضغط على الزر إنهاء ومعناها


إنتهى مع أمل الفائده للجميع

هادي الخنفري 24-01-2008 11:30 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
مجهود رائع ، بيض الله وجهك عليه والله لا يضيع أجر تعبك وشرحك الرائع

والله أني مهتم بالبرمجه في الفيجوال بيسك وأني اتابع مواضيعها وكم كانت فرحتي عندما علمت بأن لي أبن عم يهتم بنفس أهتمامي ، فإلى الأمام دائماً وكل أذاناً صاغيه ،

محمد المعمري 24-01-2008 01:08 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
http://www.qahtaan.com/works/up/get....prxy1200672359

الله يحيك تحيات المطر ياهادي الخنفري

و يحيي علمك

و الدروس تتبع ما دام فيه مهتمين و متابعين

.........................................
تحياتي ياهادي الخنفري
,,,,,,,,,,

محمد المعمري 24-01-2008 01:33 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
1.4-ألالة الحاسبة البسيطة:1107953627:
المثال الرابع الالة الحاسبة البسيطة:banana: :banana: :banana: :banana:
-مشروع جديد
سنقوم الان بالبداء بتخصيص الفورم قبل الشروع بالعمل والغرض من تخصيصة هو تغيير إتجاهة من اليمين إلى اليسار حتى يصبح الفورم بالصورة العربية
إذهب إلى خصائص الفورم Form1 وقم بتغيير الخصائص التالية
Reighte To Left من NO إلى Yes
Reighte To Left layot من Falseإلى True
Text من Form1 إلى ألآلة الحاسبة البسيطة
أصبح الفورم الان قابلا للتعامل معة من اليمين لليسار بكافة مكوناتة التى سنضعها بعد قليل
http://www.qahtaan.com/works/up/get....y1781201170499

- من شريط الأدوات نقوم بإدراج التالى
TextBox عدد 3
Label عدد 3
Button عدد 2
GroupBox عدد 1
Radio Button عدد 4
ثم نقوم بترتيبها بإدراج الأربعة Radio Buttons داخل مربع المجموعة Group Box وتنظيم باقى المكونات بشكل مناسب وأرجوا منكم أن تقومون بتنظيم العمل بشكل مناسب من ناحية الأشكال والخطوط والألوان.....الخ

http://www.qahtaan.com/works/up/get....9l481201170499

نقوم بتسمية المكونات كالتالى
GroupBox1 -عمليات
Radio Button1 -جمع (+)
Radio Button2 -طرح (-)
Radio Button3 -ضرب (*)
Radio Button4 -قسمة (/)
TextBox1 -الرقم الأول
TextBox2 -الرقم الثانى
TextBox3 -الناتج

http://www.qahtaan.com/works/up/get....mpux1201170499

الان الكود
سأقوم بوضع جزء من الكود وعلى الجميع توقع الكود الذى يلية
-دبل كليك على الفورم ثم فى أسفل السطر التالى Public Class Form1
كود:
Dim FirstNum, SecondNum As Double
دبل كليك على الزر تنفيذ ثم
كود:
FirstNum = TextBox1.Text
SecondNum = TextBox2.Text
مطلوب الان أن نقوم بوضع أكواد 4 عمليات بعد الكود السابق مباشرة وهى الأكود التى تصف عمليات الجمع والطرح والقسمة والضرب وسأقوم أنا بوضع كود لعملية واحدة وعليكم توقع الأكواد الثلاثة الباقية
كود عملية الجمع
كود:
If RadioButton1.Checked = True Then
TextBox3.Text = FirstNum + SecondNum
End If

http://www.qahtaan.com/works/up/get....fmuy1201170630

ترجمة كود الآلة الحاسبة الى C#


كود:
Dim FirstNum, SecondNum As Double

تصبح

كود:
Double FirstNum,SecondNum;
كود:
FirstNum = TextBox1.Text
SecondNum = TextBox2.Text
تصبح

كود:
FirstNum = TextBox1.Text;
SecondNum = TextBox2.Text;
كود:
If RadioButton1.Checked = True Then
TextBox3.Text = FirstNum + SecondNum
End If
مع باقي العمليات تصبح

كود:
if(RadioButton1.Checked == True)
TextBox3.Text = FirstNum + SecondNum;
else if(RadioButton2.Checked == True)
TextBox3.Text = FirstNum - SecondNum;
else if(RadioButton3.Checked == True)
TextBox3.Text = FirstNum * SecondNum;
else if(RadioButton4.Checked == True)
TextBox3.Text = FirstNum / SecondNum;
زر الانهاء بدل

كود:
End
يجب ان يكون الامر

كود:
Close();
و إذا أرت برنامج الترجمه من VB إلى C# لمن يبحث عن الترجمة
http://www.carlosag.net/Tools/CodeTr...r/Default.aspx

ولا تنسوا الزر End الذى يعنى

إ نتهى


مع أمل التواصل و الفائدة,,,,:)

محمد المعمري 27-01-2008 06:03 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
1.5-نموذج عرض المنتجات
المثال الخامس نموذج عرض المنتجات
الغرض من التطبيق هو عرض صورة لأحد المنتجات عند التأشير علية بالماوس أو استدعاؤة من أحد القوائم
قم بعمل مجلد وقم بتسميتة أى اسم Source مثلا وضع فية عدد 12 صورة بصيغة Bmp وضعة فى دليل ما وليكن /:C مثلا يمكنكم الإستعانة بالصور المرفقة
مشروع جديد والفورم من اليمين إلى اليسار ثم نقوم بإدراج المكونات التالية فى الفورم
PictureBox عدد6
List Box عدد1
ComboBox عدد1
GroupBox عدد2
Radio Button عدد3
CheckBox عدد3
Button عدد1
Lable عدد1
ثم نقوم بوضعها فى شكل ملائم

http://www.qahtaan.com/works/up/get....qrt61201445945

التسمية
Form1=نموذج عرض المنتجات
Lable1=أدوات منزلية
ComboBox1=أجهزة كمبيوتر
GroupBox1 = أجهزة محمولة
RadioButton1=جهاز محمول 1
RadioButton2=جهاز محمول 2
RadioButton3=جهاز محمول 3
GroupBox2= ألعاب أطفال
CheckBox1=ميكى
CheckBox2=بلوتو
CheckBox3=بامبى
يراعى عند إعادة التسمية التغيير من الخاصية Text فقط
الخصائص
سنقوم بتغيير خصائص صندوق الصورة بنفس الطريقة المتبعة فى الأمثلة السابقة
ثم نقوم بترتيبها بشكل مناسب

http://www.qahtaan.com/works/up/get....cyom1201445985

نقوم بإدراج قائمة بعدد من المنتجات فى كلا من List Box1 و ComboBox1 كالتالى
قم بالتأشير على List Box1 واذهب إلى Edit Item أسفل صندوق الخصائص Properties كما هو موضح وقم بعمل قائمة بالعناصر التى تريد إظهارها وقم بنفس الخطوات مع ComboBox1

http://www.qahtaan.com/works/up/get....ntwy1201446021

إذا لم تجد Edit Item أسفل قائمة الخصائص قم بعمل كليك يمين بالماوس فى المنطقة الخالية أسفل صندوق الخصائص ثم اختر Commands ستظهر لك Edit Item
الكود
أولا :RadioButtons
دبل كليك على RadioButton1 ثم

كود:

PictureBox1.Image = System.Drawing.Image.FromFile _
("C:\Source\Mob1.bmp")
دبل كليك على RadioButton2 ثم

كود:

PictureBox1.Image = System.Drawing.Image.FromFile _
("C:\Source\Mob2.bmp")
دبل كليك على RadioButton3 ثم

كود:

PictureBox1.Image = System.Drawing.Image.FromFile _
("C:\Source\Mob3.bmp")
ثانيا:CheckBoxs
دبل كليك على CheckBox1 ثم

كود:

If CheckBox1.CheckState = 1 Then
PictureBox4.Image = System.Drawing.Image.FromFile _
("C:\Source\Mickey.bmp")
PictureBox4.Visible = True
Else
PictureBox4.Visible = False
End If
دبل كليك على CheckBox2 ثم

كود:

If CheckBox2.CheckState = 1 Then
PictureBox5.Image = System.Drawing.Image.FromFile _
("C:\Source\Pluto.bmp")
PictureBox5.Visible = True
Else
PictureBox5.Visible = False
End If
دبل كليك على CheckBox3 ثم

كود:
If CheckBox3.CheckState = 1 Then
PictureBox6.Image = System.Drawing.Image.FromFile _
("C:\Source\Bamby.bmp")
PictureBox6.Visible = True
Else
PictureBox6.Visible = False
End If
-**-
ثالثا:ListBox1
دبل كليك على ListBox1 ثم

كود:
Select Case ListBox1.SelectedIndex
Case 0
PictureBox2.Image = System.Drawing.Image.FromFile _
("c:\Source\Hom1.bmp")
Case 1
PictureBox2.Image = System.Drawing.Image.FromFile _
("c:\Source\Hom2.bmp")
Case 2
PictureBox2.Image = System.Drawing.Image.FromFile _
("c:\Source\Hom3.bmp")
End Select

-**-
رابعا:ComboBox1
دبل كليك......الخ

كود:
Select Case ComboBox1.SelectedIndex
Case 0
PictureBox3.Image = System.Drawing.Image.FromFile _
("c:\Source\PC1.bmp")
Case 1
PictureBox3.Image = System.Drawing.Image.FromFile _
("c:\Source\PC2.bmp")
Case 2
PictureBox3.Image = System.Drawing.Image.FromFile _
("c:\Source\PC3.bmp")
End Select

يجب مراعاة كتابة الدليل الذى ستضع بة الصور بصورة صحيحة
هذة صورة التطبيق

http://www.qahtaan.com/works/up/get....quwy1201446083
يــــــــــــــــــــتبع,,,,,,,,

محمد المعمري 28-01-2008 04:46 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
المجموعة الثانية:banana: :banana:
2.1-حل معادلات الدرجة الثانية
حل معادلات الدرجة الثانية باستخدام فيجوال بيسيك 2005
ما هى معادلة الدرجة الثانية؟:confused:
هى المعادلة التى على الصورة التالية

http://www.qahtaan.com/works/up/get....noqv1201526721
حيث أن a وb وc ثوابت وهى أرقام وa و b أكبر أو أقل من الصفر ولكنها لا تساوى صفر و X لا تساوى صفر
المطلوب فى حل هذة المعادلة هو إيجاد قيمة X الذى هو المتغير الوحيد الذى يمكن تمثيل الدالة بدلالتة
يمكن حل بعض معادلات الدرجة الثانية باستخدام طريقة تحليل المقدار الثلاثى ولكن هذة حالات محدودة وعلى ذلك لا بد من موجود طريقة مؤكدة لحل المعادلة
باستخدام طريقة إكمال المربع فإن

http://www.qahtaan.com/works/up/get....opvy1201526738

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

http://www.qahtaan.com/works/up/get....hcfz1201526769

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

C:\Documents and Settings\the golden2008\My Documents\the golden«\أهـــــــــــم الأعمال و الأنشطه و المستعجله\المشاغب\34.gif

وعلى ذلك فقد قمنا بتقسيم المعادلة إلى جزئين
-جزء حقيقى Real Part
-جزء تخيلى Imaginary Part
وعلى سبيل المثال فإنة لوكانت لدينا المعادلة التالية

http://www.qahtaan.com/works/up/get....azsu1201526868

إذن الجزء الذى يجب أن نتعامل معة لأنشاء البرنامج هو المعادلة الأخيرة التى توصلنا إليها

http://www.qahtaan.com/works/up/get....lvwx1201526868

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

ثم نقوم بإنشاء هذة الدالة


كود:
Private Function QuadRoots(ByVal A As Decimal, ByVal B As Decimal _
, ByVal C As Decimal) As String()
Dim Root(1) As String
Dim X1 As Decimal = Nothing
Dim X2 As Decimal = Nothing
Dim Discriminant As Decimal = B ^ 2 - 4 * A * C
Dim RealPart As Double = (-B) / (2 * A)
Dim ImaginaryPart As Double = (Math.Sqrt(-Discriminant)) / (2 * A)
If Discriminant >= 0 Then
X1 = (-B + Math.Sqrt(B ^ 2 - 4 * A * C)) / (2 * A)
X2 = (-B - Math.Sqrt(B ^ 2 - 4 * A * C)) / (2 * A)
Root(0) = X1.ToString
Root(1) = X2.ToString
End If
If Discriminant < 0 Then
X1 = (RealPart) + (ImaginaryPart)
X2 = (RealPart) - (ImaginaryPart)
Root(0) = RealPart.ToString & "+" & ImaginaryPart.ToString & "i"
Root(1) = RealPart.ToString & "-" & ImaginaryPart.ToString & "i"
End If
Return Root
End Functionوفى الزر حساب
كود:
Dim Root(1) As String
Root = QuadRoots(TextBoxA.Text, TextBoxB.Text, _
TextBoxC.Text)
TextBox1.Text = Root(0)
TextBox2.Text = Root(1)ثم
End
ورابط تحميل المشروع
http://www.zshare.net/download/46275942b4c120
يـــــــــــــــــــــــــــــــــــتبع.........

محمد المعمري 29-01-2008 05:21 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
2.2-Masked TextBox and Text Valdation

سنتعرف اليوم على Masked TextBox و طرق تخصيص مربع النص TextBox وتحديد إدخالات معينة فى TextBox وكذلك المنع والسماح لعدد معين من الحروف والرموز والصيغ داخل مربع النص TextBox
أولا: MaskedTextBox
-نقوم بعمل مشروع جديد ثم نقوم بإدراج MaskedTextBox من خلال ToolBox
كليك يمين بالماوس على MaskedTextBox ثم قم باختيار SetMask يظهر لك الان نافذة Input Mask ويوجد بها قائمة بأنواع الماسكات الممكن استخدامها داخل MaskedTextBox ويمكن تجربة اختيار أحد الأنواع وتجربة كتابة النص بداخلة لمشاهدة النتيجة

http://www.qahtaan.com/works/up/get....qrsv1201615495

ثانيا :Text Validation
إنشاء حدث الكتابة فى مربع النص
لا بد لنا من فهم معنى حدث (Event)
هى كلمة مشتقة من الحدوث ومعناها فى موضوعنا هو تأخير ظهور الوظيفة التى قمنا بإنشائها إلى أن يقع أمر ما
-KeyPress
وهو من خلال اسمة يوضح وظيفتة الضغط على زر
نقوم بفتح مشروع جديد يحتوى على 12 مربع نص TextBox و9 عناوين Label ويمكن وضعها كما بالشكل الاتى

http://www.qahtaan.com/works/up/get....npqr1201615495

-منع كتابة زر معبن داخل مربع النص TextBox1
قم بكتابة الكود التالى


كود:
Private Sub TextEV1_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = CChar("r") Then e.Handled = True
End Sub
وبالنظر إلى الكود جيدا نجد أن الجزء الفعال فى الكود هو

كود:
If e.KeyChar = CChar("r") Then e.Handled = True
والمعنى عند كتابة الرمز r فإن المنع =حقيقى يعنى قم بمنع ذلك
و TextEV هذة تسمي اختيارية ممكن التسمية TextEV1 و TextEV2 إلخ أو أى تسمية
لوحة المفاتيح مقسمة إلى ثلاثة أجزاء (أرقام و حروف و رموز) كل الأمثلة التالية تقوم بمنع الرموز تلقائيا
2- منع الأرقام والسماح للحروف بدلالة IsNumber فى TextBox2
كود:
Private Sub TextEV2_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox2.KeyPress
If Char.IsNumber(e.KeyChar) Then e.Handled = True
End Sub
لو كان المكتوب رقما قم بمنعة
3- السماح للإرقام ومنع الحروف بدلالة IsNumber فى TextBox3

كود:
Private Sub TextEV3_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox3.KeyPress
If Char.IsNumber(e.KeyChar) = False Then e.Handled = True
End Sub
إذا لم يكن المكتوب رقم ....الخ
4- منع الأرقام والسماح للحروف بدلالة IsLetter فى TextBox4
وهى تعطى نفس النتيجة الموجودة فى 2 ولكن باستخدام IsLetter
كود:
Private Sub TextEV4_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox4.KeyPress
If Char.IsLetter(e.KeyChar) = False Then e.Handled = True
End Sub5
- السماح للإرقام ومنع الحروف بدلالة IsLetter فى TextBox5
وهى نفس 3 ولكن بدلالة IsLetter
كود:
Private Sub TextEV5_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox5.KeyPress
If Char.IsLetter(e.KeyChar) Then e.Handled = True6
-السماح لكل من الأرقام والحروف فى TextBox6
كود:
Private Sub TextEV6_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox6.KeyPress
If Char.IsLetterOrDigit(e.KeyChar) = False Then e.Handled = True
End Sub
وكما نرى فإن الرموز والإشارات والعلامات ممنوعة فى كل الأحوال وعلى ذلك نحتاج إلى طريقة للسماح بها سنفترض أن لدينا مربع نص يمكنة أن يحتوى على رقم أو رقم عشرى(.) أو – أو+
7-للسماح بإضافة علامة أو رمز فى TextBox7
إذا أردنا أن نسمح للأرقام العشرية فقط
كود:
Private Sub TextEV7_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) _
Handles TextBox7.KeyPress
If Char.IsNumber(e.KeyChar) = False Then
If e.KeyChar = CChar(".") Then
e.Handled = False
Else
e.Handled = True
End If
End If
End Sub
هنا قمنا بالسماح لرمز واحد فقط وهو العلامة العشرية فإذا أردنا السماح برموز أخرى فكما بالمثال التالى
كود:
Private Sub TextEV7_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) _
Handles TextBox7.KeyPress
If Char.IsNumber(e.KeyChar) = False Then
If e.KeyChar = CChar(".") Or e.KeyChar = CChar _
("-") Or e.KeyChar = CChar("+") Then
e.Handled = False
Else
e.Handled = True
End If
End If
End Sub
وكما نرى قمنا بالسماح لعلامتى – و+
8-لتطبيق الحدث على مجموعة من مربعات النص TextBox8 و TextBox9 و TextBox10
أما إذا أردنا أن نقوم بتطبيق الحدث على مجموعة من مربعات النصوص دفعة واحدة فإليكم الكيفية
كود:
Private Sub TextEV8_KeyPress(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles _
TextBox8.KeyPress, TextBox9.KeyPress, TextBox10.KeyPress
If Char.IsNumber(e.KeyChar) = False Then e.Handled = True
End Sub9
- منع الحروف الصغيرة فىTextBox 11
كود:
Private Sub TextEV9_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox11.KeyPress
If Char.IsLower(e.KeyChar) Then e.Handled = True
End Sub10
- منع الحروف الكبيرة فى TextBox 12
كود:
Private Sub TextEV10_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles TextBox12.KeyPress
If Char.IsLower(e.KeyChar) = False Then e.Handled = True
End Sub
وهذا رابط تحميل المشروع
http://www.zshare.net/download/476908070fcd53
يتبـــــــــــــــــــــــــــــــــــع........... :)

مبارك العرجي 30-01-2008 10:40 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
السلام عليكم ورحمة الله وبركاته

ما شاء الله على الحماس والمجهود يا اخوي "مبرمج آل معمر" ما أقول لك إلا:

<div dir="ltr">
Text1.Text = "لا هنت يا ذيب"
</div>

وحنا معك
انا بصراحه كنت ابرمج على الفيجوال بيسك 6.0 بس تركته بعد ما جات الـ DotNET والحين ابرمج على الــC#
ولما قريت الموضوع تحمست وإن شاء الله راح نكون قريبين

وبصراحه عندي كم ملاحظه
- لو يكون للبرمجه قسم خاص فيه وكل درس موضوع لحاله افضل عشان الاستفسارات والاسئله.
- ولو تتركم الادراه انها تحط كود (html) خاص بــ أكواد البرمجه عشان نكتب الكود ويكون الكود واضح مثل
------------------------
<table border="1" cellpadding="4" cellspacing="2" bordercolor="#000000" width="100%" bgcolor="#ffffff" style="border-collapse: collapse; font-family:Tahoma; font-size:8pt">
<tr>
<td colspan="6" align=left style="font-family: Tahoma; font-size: 10pt; font-weight: bold;" bgcolor="#C0C0C0">
Example1:
</td>
</tr>
<td colspan="6" align=left style="font-family: Courier New; font-size: 10pt;" bgcolor="#FFFFD0">
Code in VB or C#...etc<br><br>
</td>
</table>
------------------------

محمد المعمري 31-01-2008 12:41 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
اقتباس:

المشاركة الأصلية كتبت بواسطة أبوالليل (المشاركة 434348)
السلام عليكم ورحمة الله وبركاته
وعليكم السلام
ما شاء الله على الحماس والمجهود يا اخوي "مبرمج آل معمر" ما أقول لك إلا:

<div dir="ltr">
Text1.Text = "لا هنت يا ذيب"
</div>

قايل ن ما يهون و حياك الله
وحنا معك
انا بصراحه كنت ابرمج على الفيجوال بيسك 6.0 بس تركته بعد ما جات الـ DotNET والحين ابرمج على الــC#
ولما قريت الموضوع تحمست وإن شاء الله راح نكون قريبين
الله يحيك ياذيبان
وبصراحه عندي كم ملاحظه
- لو يكون للبرمجه قسم خاص فيه وكل درس موضوع لحاله افضل عشان الاستفسارات والاسئله.

- ولو تتركم الادراه انها تحط كود (html) خاص بــ أكواد البرمجه عشان نكتب الكود ويكون الكود واضح مثل
أما من نحيت ملاحظاتك ألي على المجالس فننتظر المشرف العام يرد علك
و أما من ناحية وضوح الأكواد فلك البرنامج الذي يقوم بتحويل و ترجمة الأكواد ألى لغات أخرى في الرد الثاني التابع لهاذا الموضوع
------------------------
<table border="1" cellpadding="4" cellspacing="2" bordercolor="#000000" width="100%" bgcolor="#ffffff" style="border-collapse: collapse; font-family:Tahoma; font-size:8pt">
<tr>
<td colspan="6" align=left style="font-family: Tahoma; font-size: 10pt; font-weight: bold;" bgcolor="#C0C0C0">
Example1:
</td>
</tr>
<td colspan="6" align=left style="font-family: Courier New; font-size: 10pt;" bgcolor="#FFFFD0">
Code in VB or C#...etc<br><br>
</td>
</table>
------------------------

تحياتي يابو اليل,,,,,,,

محمد المعمري 31-01-2008 01:03 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
المجموعة الثالثة:
3.1-لاقط الشاشة Screen Captuer
http://www.qahtaan.com/works/up/get....lotw1201615495
مكونات المشروع
3 أزرار
CheckBox
PictuerBox
يجب ترتيب شكل المشروع كما بالصورة مع مراعاة أن تكون أبعاد مربع الصورة متناسبة 4 عرض إلى 3 طول 400 إلى 300 مثلا
بالنسبة لل CheckBox يجب تغيير خاصية Checked إلى True والغرض من ذلك أنها تكون فى الوضع Checked عند فتح البرنامج
كود الزر إلتقاط


كود:
Dim b As Bitmap = New Bitmap(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height)
Dim g As Graphics = Graphics.FromImage(b)
Dim s As Size = New Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height)
If CheckBox1.Checked Then
Me.Hide()
Dim t As DateTime = Now.AddSeconds(1)
Do : Application.DoEvents()
Loop Until Now.Second >= t.Second
g.CopyFromScreen(0, 0, 0, 0, s, CopyPixelOperation.SourceCopy)
Me.Show()
t = Nothing
Else
g.CopyFromScreen(0, 0, 0, 0, s, CopyPixelOperation.SourceCopy)
End If
PictureBox1.Image = b
g.Dispose()
b = Nothing

ستكون الصورة هى b

كود:
Dim b As Bitmap = New Bitmap(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height)
الصورة الجديدة مصدرها طول وعرض
العرض من Screen.PrimaryScreen.WorkingArea وكذلك الطول
سيكون حجم الصورة الملتقطة هو حجم شاشة العرض التى تستخدمها

كود:
Dim s As Size = New Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height)
لو مساحة العرض =800x600 ستكون الصورة الملتقطة بنفس المقاس
وظيفة CheckedBox
كود:
If CheckBox1.Checked Then
Me.Hide()
Dim t As DateTime = Now.AddSeconds(1)
Do : Application.DoEvents()
Loop Until Now.Second >= t.Second
g.CopyFromScreen(0, 0, 0, 0, s, CopyPixelOperation.SourceCopy)
Me.Show()
t = Nothing
إذا كان مربع CheckBox فى وضع Check قم باخفاء البرنامج نفسة من على سطح المكتب حتى لا يظهر أثناء الإلتقاط لمدة ثانية واحدة ثم التقط عن طريق نسخ البيكسل الذى هو b التى هى الصورة ثم قم بعرض الصورة داخل مربع الصورة
كود الزر حفظ



كود:
Dim saveDlg As SaveFileDialog = New SaveFileDialog

كود:

Dim dlgResult As DialogResult = New DialogResult
saveDlg.Filter = "JPEG Files (*.jpg)|*.jpg"
saveDlg.Title = "Select the file to save the image too."
dlgResult = saveDlg.ShowDialog
If dlgResult = Windows.Forms.DialogResult.OK Then
PictureBox1.Image.Save(saveDlg.FileName)
End If

وكما هو واضح فهذا ما هو إلا دايلوج الحفظ

لتحميل المثال
http://www.zshare.net/download/504850426ea861

يتــــــــــــــــــــبع,,,,,,:)

محمد المعمري 01-02-2008 12:29 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
3.2-كيفية تدريج اللون داخل الفورم

http://www.qahtaan.com/works/up/get....stuv1201615495

لكى نعرف كيف نتحكم فى تدرج اللون سنقوم بعمل تطبيق للتدرج داخل الفورم
-فورم يحتوى على PictuerBox وTimer
-تغييرالخاصية Enabled الموجودة فى Timer إلى True
الكود
فى قسم التصريحات العامة


كود:
Imports System.Drawing.Drawing2D
من الواضح طبعا الغرض واضح من استيراد Drawing2D حيث سنستخدم أدوات الرسم


فى الفورم


كود:

Private M_M As Single = 0
Private M_D As Single = 0.1
لتعريف الخاصية المطلوبة سنقوم بإنشاء روتين فرعى


كود:
Private Sub PictureBox1_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) Handles _
PictureBox1.Paint
Dim LB As New LinearGradientBrush(New Point(0, 0), New Point _
(Me.ClientSize.Width, 0), Color.Green, Color.Yellow)
Dim CB As New ColorBlend
CB.Colors = New Color() {Color.Green, Color.YellowGreen, Color.Yellow}
CB.Positions = New Single() {0, M_M, 1}
LB.InterpolationColors = CB
e.Graphics.FillRectangle(LB, Me.ClientRectangle)
LB.Dispose()
M_M += M_D
If (M_M > 1) OrElse (M_M < 0) Then M_D = -M_D
End Sub
شرح هذا الكود


كود:
Dim LB As New LinearGradientBrush(New Point(0, 0), New Point _
(Me.ClientSize.Width, 0), Color.Green, Color.Yellow)LB
التدرج الخطى يبداء من النقطتين 0 و0 رأسيا وأفقيا التدرج يبداء من اللون الأخضر وينتهى بالأصفر


CB سيكون هو خالط اللون


كود:
CB.Colors = New Color() {Color.Green, Color.YellowGreen, Color.Yellow}

أثناء التدرج من الأخضر إلى الأصفر هناك مرحلة انتقالية وهى الأخضر المائل للصفرة


كود:
CB.Positions = New Single() {0, M_M, 1}
تحديد نقطة البداء بالنسبة ل CB

كود:
LB.InterpolationColors = CB
وهذة هى نقطة الإنقلاب

كود:
e.Graphics.FillRectangle(LB, Me.ClientRectangle)
وهنا يجب تعبئة الشكل الرباعى بكل ماسبق
الان سنعرف ماهى وظيفة Timer
ووظيفتة تحريك العمل الذى قمنا بة ولكى نقوم بتفعيلة دبل كليك علية ثم نكتب الكود التالى

كود:
PictureBox1.Invalidate()
ومعناة إجعل مربع الصورة يتلاشى
طبعا يمكنكم تغيير الألوان والأوضاع حسب الرغبة
ودة طبعا رابط المشروع
http://www.zshare.net/download/5068487a823b4f


ويتبع.....:)

مبارك العرجي 01-02-2008 05:44 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
1 مرفق
السلام عليكم

لاهنت على المجهود الطيب

ذكرتني بأيام الثانويه
هذي ثلاث برامج عن حل المعادلات

محمد المعمري 01-02-2008 05:57 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
التعامل مع قواعد البيانات

*****
Part1-كيفية إنشاء قاعدة بيانات
كيفية إنشاء قاعدة بيانات
أولا:قاعدة بيانات أكسس Microsoft Access
-قم بفتح برنامج الأكسس
-إذا كنت تستخدم أكسيس 2007 قم بالضغط على Blank Database أو قاعدة بيانات فارغة ثم اكتب اسم قاعدة البيانات ثم Create أو إنشاء

إذا كنت تستخدم إصدار اخر فمن قائمة File أو ملف اختر جديد .....الخ
سوف تفتح قاعدة البيانات الجديدة وبها جدول واحد ولإضافة جدول فى أكسس 2007 إضغط Create أو إنشاء ثم اختر Table أو جدول وباستخدام أى اصدار اخر من أكسس إضغط على Add New Table إضافة جدول أو جدول جديد
http://www.qahtaan.com/works/up/get....ovwx1201872740
-نقوم بإضافة 2 جدول إلى قاعدة البيانات فيصبح لدينا عدد 3 جدول فى قاعدة البيانات ويفضل أن نقوم بإعادة تسمية الجداول كالتالى
جدول 1= Groups
جدول 2=Projects
جدول 3= GroupProjects

http://www.qahtaan.com/works/up/get....mnrw1201872740
نقوم الان بتحرير الجداول ولعمل ذلك نقوم بعمل كليك يمين بالماوس على الجدول الذى نريد تحريرة ثم Design View أو عرض التصميم

http://www.qahtaan.com/works/up/get....ckaz1201872740
أولا: جدول 1 Groups
سيحتوى الجدول على 4 حقول وهى
1- الحقل الأول GroupID
خصائص الحقل GroupID
-Data Type وهذة الخاصية تحدد نوعية البيانات الذى سيحتويها هذا الحقل يعنى هل هو نص أو صورة أو رقم أو تاريخ ........الخ
وهذا الحقل ستكون البيانات بة رقم أى أن Data type=Number
خصائص البيانات
Field Size= Replication ID
Required=yes
Indexed = Yes (No Duplicates)
ايضاح الخصائص على الترتيب
-رقم سيتم انشاؤة أو نسخة
-لابد من أن تحتوى على بيانات وإلا فإنة من غير الممكن الاستمرار أى أنة لا يسمح بأن تكون هذة الخانة فارغة
-غير مسموح بالتكرار
2-الحقل الثانى GroupName
خصائص الحقل الثانى GroupName
Data type=Text
سيحتوى على نص
خصائص البيانات
Required = Yes
Allow Zero Length = No
3- الحقل الثالث GroupDescription
خصائص الحقل الثالث GroupDescription
Data type=Memo
مذكرة والمعنى أنة يمكن وضع أى شىء بدون قيود حتى وإن كانت صورة مثلا
خصائص البيانات
Required = No
Allow Zero Length = Yes
4-الحقل الرابع LastUpdateDate
من الواضح أنة سيتضمن التاريخ
Data type= Date/Time
وخصائصة
Required = Yes
نقوم الان بتعيين مفتاح لهذا الجدول وسيتم اتخاذ الحقل الأول GroupID كمفتاح لهذا الجدول وذلك عن طريق كليك يمين بالماوس على الحقل المراد اتخاذة كمفتاح ثم Primary Key عموما يقوم أوفيس بتعيين الصف الأول كمفتاح تلقائيا
http://www.qahtaan.com/works/up/get....ikpv1201872740


ثانيا :جدول 2 Projects
سيحتوى هذا الجدول على 5 حقول وهى كالتالى
1- الحقل الأول ProjectID
Data type=Number
Field Size= Replication ID
Required=yes
Indexed = Yes (No Duplicates)
2-الحقل الثانى ProjectName
Data type=Text
Required = Yes
Allow Zero Length = No
3-الحقل الثالث ProjectDescription
Data type=Memo
Required = No
Allow Zero Length = Yes
4- الحقل الرابع SequenceNumber
Data type=Number
Field Size = Byte
Required = Yes
5- الحقل الخامس LastUpdateDate
Data type= Date/Time
Required = Yes
المفتاح هو ProjectID
ثالثا :جدول 3 GroupProjects
يحتوى هذا الجدول على 3 حقول
الحقل الأول GroupProjectID
Data type=Number
Field Size= Replication ID
Required=yes
Indexed = Yes (No Duplicates)
الحقل الثانى GroupID
Data type=Number
Field Size= Replication ID
Required=yes
Indexed = Yes (Duplicates OK)
الحقل الثالث Project ID
Data type=Number
Field Size= Replication ID
Required=yes
Indexed = Yes (Duplicates OK)
المفتاح هو GroupProjectID
قم بإغلاق الجداول بالضغط على X الموجودة داخل إطار كل جدول
الان تم الإنتهاء من الجداول وسنقوم بربط هذة الجداول
لربط الجداول الموجودة داخل قاعدة البيانات اتبع ما يلى
-إضغط على Tools أو أدوات ثم اختر Relationships علاقات
-قم بسحب الجدول Groups إلى داخل إطار العمل وذلك عن طريق الضغط علية بالماوس وعدم رفع الإصبع من على زر الماوس ثم قم بتحريك الماوس وأنت ضاغط إلى داخل الإطار
-قم بسحب الجدول Projects وقم بوضعة بجانب الجدول Groups وأخيرا قم بسحب الجدول GroupProject وقم بوضعة بجانب الجدول Projects ليصبح الشكل كما هو موضح
http://www.qahtaan.com/works/up/get....ikpq1201873043
لربط الجداول باستخدام الماوس سنقوم بسحب الحقل GroupID الموجود فى الجدول Groups ووضعة فوق الحقل ProjectID الموجود بالجدول Projects فتظهر لنا هذة النافذة
http://www.qahtaan.com/works/up/get....w67o1201873043
قم بالتأشير أمام Enforce Referential Integrity ثم اضغط Create
وبنفس الطريقة قم بربط ProjectID الموجود بالجدول Projects بالحقل GroupProjectID الموجود بالجدول GroupProject
ثم Save as واختر Access 2000 Database
ثانيا :قاعدة بيانات SQL
الان سنقوم بانشاء نفس قاعدة البيانات باستخدام SQL Server 2005
-قم بفتح الفيجوال استوديو ثم فى قائمة View اختر Server Explorer
-كليك يمين بالماوس على Data Connection ثم اختر New SQL Server Database Creat
-فى خانة Server Name قم بكتابة اسم السيرفر وهو
.\SQLEXPRESS

http://www.qahtaan.com/works/up/get....kpz81201873043
ثم قم بوضع اسم لقاعدة البيانات فى خانة New Database Name الموجودة فى أسفل النافذة
قم بعرض مكونات قاعدة البيانات الجديدة كما هو موضح
-كليك يمين بالماوس على Table ثم Add Table
الحقول
GroupID-
Data type= uniqueidentifier
Null=No أى لا تقوم بالتأشير أمامها وهى تساوى Requiered
- GroupName
Data type= VarChar(50)
Null=No
- GroupDescription
Data type=text
Null=Yes أى قم بالتأشير أمامها
- LastUpdateDate
Data type= datetime
Null=No
ثم كليك يمين بالماوس على حافة الجدول من أعلى ثم Save Table 1 يظهر لك مربع الحوار قم بوضع اسم الجدول وهو كما سبق Groups
http://www.qahtaan.com/works/up/get....rstv1201873043
ثم قم بإغلاقة وأعد نفس الكرة لإنشاء الجدول الثانى Projects والجدول الثالث GroupProject يمكنكم الاستعانة بالصورة التالية لمعرفة مكونات الجداول
ويتم اختيار المفتاح لكل جدول بنفس الطريقة السابقة Set Primary Key ثم قم بإغلاق الجداول
نقوم الان بعمل العلاقات بين الجداول
-لعرض تكوين الجدول كليك يمين على الجدول المراد عرض تكوينة ثم Open table Difination
-كليك يمين على Database Diagrams ثم Add New Diagram
http://www.qahtaan.com/works/up/get....qrst1201873043
-قم باختيار الجداول الثلاثة
-يظهر لك الان تخطيط جداول قاعدة البيانات قم بعمل ربط للحقول بنفس الطريقة المتبعة فى أكسس

http://www.qahtaan.com/works/up/get....tuwy1201873142
وللتأكد من أنك قمت بعمل الربط الصحيح للحقول المطلوبة تأكد من ذلك عند ظهور نافذة Tables and Columens
يجب أن يتم الإرتباط بين Group ID مع Project ID و Project ID مع GroupProjects ID

محمد المعمري 01-02-2008 06:01 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
اقتباس:

المشاركة الأصلية كتبت بواسطة أبوالليل (المشاركة 435193)
السلام عليكم

لاهنت على المجهود الطيب

ذكرتني بأيام الثانويه
هذي ثلاث برامج عن حل المعادلات

أرررررررررررحب يا بوالليل.

حياك الله أنت و علمك

لاهنت على البرنامج

تحياتي,,,,,,,,,

محمد المعمري 02-02-2008 05:18 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
Part2-ربط قاعدة البيانات بالتطبيقات

ربط قاعدة البيانات بالتطبيقات
أ
ولا:باستخدام DataGirdView
-
قم بوضع قاعدة بيانات Northwind فى اى مكان تختارة وليكن :C
-قم بفتح مشروع جديد ثم قم بتسميتة باسم مناسب
-قم بإدراج DataGirdView من مربع الأدوات ToolBox وتجدها موجودة فى Data
-بالضغط على زر المهام الصغير جدا الموجود عند الحافة اليمنى العلوية يظهر لك نافذة Tasks ثم قم بالضغط على زر مربع الاختيار الموجود بة الخيار non ثم اضغط على Add project Data Source
http://www.qahtaan.com/works/up/get....ipw61201957512

http://www.qahtaan.com/works/up/get....prtv1201957513
-يظهر لك الان معالج إعداد مصادر البيانات قم باختيار Database ثم Next
-قم باختيار New Connection ثم يظهر لك معالج الإتصال بقاعدة البيانات قم باضغط على Browse ثم قم باختيار قاعدة البيانات التى تريد الاتصال بها
-قم بالموافقة على إضافة قاعدة البيانات إلى المشروع ثم قم بالموافقة على حفظ المشروع باسم NorthwindConnectionString ثم Next تظهر لك الان محتويات قاعدة البيانات
-نقوم الان باختيار الجداول أو الحقول التى نريد إظهارها داخل المشروع بالنسبة لى سأختار من الجدول employees أربعة حقول وهى Firest Name وSecond Name وCity وHome Phone أرجوا منكم اختيار حقول أخرى للتعامل معها ثم Finish
-كليك يمين على DataGirdView ثم إذهب إلى Properties ثم إلى الخاصية Dock ثم قم بتغييرها من non إلى Fill
ثانيا:باستخدام Windows Form
-قم بفتح مشروع جديد ثم قم بإدراج 4 TextBox وكذلك 4 Lable
-فى خصائص Lable قم بتسميتها فى Text إلى الإسم , اسم الأب , المدينة , تليفون المنزل أو كما تريد أن تختار من حقول قاعدة البيانات وقم بترتيب TextBox فى شكل مناسب
-كليك يمين على الفورم ثم اذهب إلى خصائص Properties ثم قم بالذهاب إلى DataBindings ومنها قم بالضغط على Text ثم قم بالضغط على زر مربع الإختيار الموجود بة الخيار non ثم اضغط على Add project Data Source
http://www.qahtaan.com/works/up/get....e6r81201957513
يظهر لك الان معالج إعداد مصادر البيانات قم باختيار Database ثم Next
-قم باختيار New Connection ثم يظهر لك معالج الإتصال بقاعدة البيانات قم باضغط على Browse ثم قم باختيار قاعدة البيانات التى تريد الاتصال بها
-قم بالموافقة على إضافة قاعدة البيانات إلى المشروع ثم قم بالموافقة على حفظ المشروع باسم NorthwindConnectionString ثم Next تظهر لك الان محتويات قاعدة البيانات
قم باختيار الأربعة حقول الذى اخترناها سابقا أو كما تريد ثم Finish
-كليك يمين على مربع النص الأول الخاص بالإسم واذهب إلى خصائصة ثم إلى Data Binding ثم Text وقم بفتح Other Data Sources ثم NorthwindData Set ثم Employeesثم قم بالضغط على First Name
http://www.qahtaan.com/works/up/get....jnrx1201957596
-كليك يمين على مربع النص الثانى الخاص باسم الأب واذهب إلى خصائصة ثم إلى Data Binding ثم Text وقم بفتح Other Data Sources ثم NorthwindData Set ثم Employeesثم قم بالضغط على Second Name
--كليك يمين على مربع النص الثالث الخاص بالمدينة واذهب إلى خصائصة ثم إلى Data Binding ثم Text وقم بفتح Other Data Sources ثم NorthwindData Set ثم Employeesثم قم بالضغط على City
-كليك يمين على مربع النص الرابع الخاص برقم التليفون واذهب إلى خصائصة ثم إلى Data Binding ثم Text وقم بفتح Other Data Sources ثم NorthwindData Set ثم Employeesثم قم بالضغط على Home Phone
-نعود الان إلى Tool Box ثم نقوم بإدراج Binding Navigator

الان قم بتشغيل البرنامج ويمكنك الان إضافة أو إزالة أى بيانات من خلال أزرار Binding Navigator الذى يحتوى أيضا على أزرار أخرى إضافية مثل السابق والنالى وكذلك الذهاب إلى السجل الأول والسجل الأخير
لتحميل قاعدة بيانات northwind
http://www.zshare.net/download/342559556fd19c
لتحميل مثال GirdView
http://www.zshare.net/download/34256175b799d0
لتحميل مثال windows Form
http://www.zshare.net/download/3425644d183fba
ويــــــــــــــــــــــــــتبع.........

محمد المعمري 04-02-2008 01:55 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
part3-إنشاء الإستعلام Query باستخدام عبارات SQL



1-إنشاء جملة أو عبارة الإدخال Insert

-قم بفتح قاعدة البيانات التى أنشأنها فى الجزء الاول من الموضوع
-اضغط على Query أو استعلام أو انشاء استعلام طبقا لإصدار أوفيس الذى تستخدمة
-قم باختيار وضع التصميم يعنى عرض التصميم وليس معالج إنشاء استعلام
-قم بإغلاق نافذة عرض الجداول أو Show Table
http://www.qahtaan.com/works/up/get....zqjg1202078853
سنقوم الان بانشاء الاستعلام بدلالة
ProjectIDو ProjectNameو ProjectDescriptionو SequenceNumberو LastUpdateDate
إذهب إلى View أو عرض ثم اختر عرض SQL او SQL View ويمكن ذلك عن طريق عمل كليك يمين بالماوس ثم اختيارها من القائمة أو فى شريط القوائم
سنقوم الان بكتابة صيغة الاستعلام وهى


كود:
INSERT INTO Projects
كود:

(ProjectID, ProjectName, ProjectDescription, SequenceNumber, LastUpdateDate)
VALUES (@ProjectID, @ProjectName, @ProjectDescription, @SequenceNumber,
Date()+Time());

نلاحظ التالى


Insert into Projects ومعنى ذلك أننا سنتعامل مع الجدول Projects ومعنى العبارة قم بعمل إدخال إلى الجدول Projects


ماهو الذى سنقوم بإدخالة إلى الجدول Projects ؟:confused:

سنقوم بإدخال القيم التالية

VALUES (@ProjectID, @ProjectName, @ProjectDescription, @SequenceNumber,
Date()+Time());
القيم المذكورة على الترتيب
ولكن أين سنقوم بوضع هذة القيم؟:confused:
سنقوم بوضعها فى الحقول التالية على الترتيب
(ProjectID, ProjectName, ProjectDescription, SequenceNumber, LastUpdateDate)
بعد أن قمنا بكتابة صيغة الاستعلام يمكننا مشاهدتة عن طريق View ثم Design View
قم الان بعمل حفظ ستظهر لك رسالة تفيد باختيار اسم للاستعلام قم بحفظها باسم usp_InsertProject
و usp هذة هى اختصار للجملة user stored procedure وهذة التسمية ضرورية طالما أننا سنتعامل من خلال الفيجوال 2005
http://www.qahtaan.com/works/up/get....ehip1202078931
لكى نتأكد الان من صحة العمل
قم بالذهاب إلى View ثم اختر Datasheet View ستظهر لك نافذة تطلب منك إدخال ProjectID ثم بالضغط على ok سيطلب منك القيمة التالية ProjectName وفى النهاية سيقوم بإدراج التاريخ والوقت الحالى
تلقائيا دون أن يطلب منك ذلك
لكنة يبقى هناك سؤال مهم
ماذا سنكتب فى خانة ProjectID ؟:confused:
إذا نظرنا نظرة سريعة على الدرس الأول فى موضوع التعامل مع قواعد البيانات فإننا سنجد أننا قمنا بجعل محتوى الحقول GroupID و ProjectID و GroupProjectID رقم وأن من خصائص هذا الحقل أن طولة =
Replication ID ومعنى هذة الجملة Replication ID بصورة دقيقة تم توليدة أو إنشاؤة و ليس معناة مستنسخ فقد كنت مخطئا عندما عبرت عنة بأنة مستنسخ لأن هناك شرط فى عملية الاستنساخ وهو وجود الشىء
الذى سيتم النسخ منة ووجود النسخة الناشئة عن عملية النسخ وهذا الشرط لن يكون متوفرا فيكون المعنى هو مولد أو منشاء بضم الميم
ماهو هذا الرقم الذى سيتم وضعة ومن أين نأتى بة؟:confused:
سنقوم نحن بتوليد هذا الرقم وهو رقم تعريف أو رقم هوية ولة مواصفات خاصة يتم الحصول عليها من خلال الويندوز وهو رقم تجدونة كثيرا من ضمن الأرقام الخاصة ببعض قيم الرجيسترى المعرفة بل هو نفسة وهو بالتحديد رقم
Identities لذلك يتم اختصارة إلى ID إذن Identities هى تعريف أو دليل
-إن أرقام ID التى هى Identities تتكون من 32 رقم مقسمة إلى أربع مجموعات بين كل مجموعة ومجموعة يوجد فاصل وتحتوى على أرقام وحروف كبيرة Capital
3 مجموعات منها تتكون من أربعة رموز ومجموعة واحدة تتكون من 8 رموز ومجموعة أخيرة تتكون من 12 رمز مثل هذا
5D486569-90CA-434E-9FFD-EE5DABA81223
ويتم انشاؤها عشوائيا بدون ترابط بين الرقم السابق والرقم الحالى والرقم القادم
ولكن هناك خطاء نقوم دائما بارتكابة وبإصرار غريب وهو أننا نطلق علية لفظ رقم فكما رأينا هو ليس رقم فهو يحتوى على حروف وأرقام وهناك أيضا فواصل إذن هو ليس رقم إنة ID
كيف نقوم بعمل هذا ID ؟:confused:
-قم بفتح مشروع جديد ثم قم بإدراج TextBox وButton
-قم بوضعهما بشكل مناسب مثل هذا
http://www.qahtaan.com/works/up/get....orsu1202078931
قم بوضع الكود التالى فى TextBox1

كود:
TextBox1.Text = Guid.NewGuid.ToString.ToUpper()قم بوضع الكود التالى فى Button1

كود:
Clipboard.SetText(TextBox1.Text)قم الان بتجربتة لتوليد ID عشوائى
فى الكود الأول الخاص بمربع النص قمنا بإضافة ToUpper من أجل تحويل الحروف الصغيرة إلى حروف كبيرة
الكود الثانى معناه قم بإرسال الناتج إلى Clip Board ويمكنكم التأكد من ذلك بعد أن تضغط على الزر إنشاء بأن تقوم بعمل لصق Past داخل أى ملف نص لتجد ID الذى تم انشاؤة قد تم نسخة داخل ملف النص دون
الحاجة لأن تقوم بعمل Copy نسخ
2- إنشاء عبارة الاختيار Select..

نقوم الان بإنشاء استعلام Query بنفس الطريقة السابقة
قم بتغيير العرض إلى SQL View ثم اكتب الصيغة التالية

كود:
SELECT ProjectID, ProjectName, ProjectDescription, SequenceNumber, LastUpdateDateDate


كود:

FROM Projects
ORDER BY SequenceNumber;والمعنى واضح قم باختيار الحقول ProjectID, ProjectName, ProjectDescription, SequenceNumber, LastUpdateDateDate


من الجدول Projects


ثم قم بترتيبها ترتيبا تصاعديا إعتمادا على SequenceNumber

يعنى السجل الذى لة SequenceNumber 1 أولا ثم 2 ثم 3 .....الخ

3-إنشاء عبارة Update

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

كود:
UPDATE Projects SET ProjectName = @ProjectName, ProjectDescription = @ProjectDescription,

كود:

SequenceNumber = @SequenceNumber, LastUpdateDate = Date()+Time()
WHERE ProjectID=@ProjectID;ثم حفظ باسم usp_updateProject


4-إنشاء عبارة Delete

ووظيفتها الحذف
إنشاء استعلام ثم كتابة العبارة التالية



كود:

Delete
FROM Projects
WHERE ProjectID = @ProjectID;

ثم قم بحفظة باسم usp_DeleteProject
سنقوم الان بإضافة استعلام اخر
قم بإضافة Query
والصيغة هى

كود:
SELECT ProjectID, ProjectName, ProjectDescription, SequenceNumber, LastUpdateDate
FROM Projects
WHERE ProjectID=[@ProjectID];

ثم نقوم بحفظ باسم usp_SelectProjects
وكما ترون فإننا قمنا بالاختيار من ضمن مجموعة من المشاريع Projects عند وجود أكثر من مشروع

و يتبع......

محمد المعمري 04-02-2008 11:15 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
Part4-تعريف Currency Manager
Currency Manager
ما هو Currency Manager أو مدير التعاملات؟
هو مجموعة من أدوات التحكم تقوم بإدارة الاتصال بقاعدة البيانات وربطها بالتطبيق وعرض البيانات داخل الفورم ولكن لكى نفهم معنى Currency Manager يجب أن نعرف مسار عملية الإتصال بقاعدة البيانات
-عندما تريد الإتصال بقاعدة البيانات بغرض التحكم فى محتوياتها فمعنى ذلك أنة قد صدر أمر منك من خلال هذا الإتصال الصادر منك إلى قاعدة البيانات وهذا يسمى Data Connection
http://www.qahtaan.com/works/up/get....quvw1202155525
وعلى ذلك ينبغى أن يتم الرد فى الوارد
http://www.qahtaan.com/works/up/get....dgfv1202155554
ويسمى الوارد من قاعدة البيانات إليك Data Adaptor ويتضمن معلومات حول الجداول والحقول التى قمت باختيارها
إذن لدينا الان Data Connection و Data Adaptor
ولكن كيف يمكن معرفة محتويات القاعدة من خلال الإتصال وبمعنى أكثر وضوحا كيف وبأى طريقة سيتم عرض المحتويات
يتم تفصيل وتقسيم محتويات قاعدة البيانات فى جزء يعرف باسم DataSet حيث أنة يتم تحليل قاعدة البيانات إلى مكوناتها الرئيسية Tables وViews وStored Procedures و Functions ....الخ
كما يتم عرض مكونات الجداول أيضا من حقول
http://www.qahtaan.com/works/up/get....utm01202155607
بعد ذلك تذهب كافة المعلومات إلى أداة الربط Binding Source ومن خلال اسمها فمن الواضح أنها تقوم بتثبيت الاتصال الذى تم إنشاؤة وربط المعلومات بالفورم الذى ستقوم من خلالة بعرض البيانات
http://www.qahtaan.com/works/up/get....jpqy1202155640
إذن هذا هو مسار الاتصال بقاعدة بيانات يمكننا أن نقوم بالحصول على البيانات عن طريق سلوك نفس المسار باستخدام كود دون أن نقوم بربط كل مربع نص بالحقل المطلوب هل يمكن ذلك
مثال
نفترض أن لدينا قاعدة بيانات A وأن بها الجدول B وعدد من الحقول ba,bb,bc,bd وأنة أثناء عمل اتصال بقاعدة البيانات قام معالج الإتصال بعمل Dataset وقام بتسميتها مثلا CDataSet نستطيع أن نقوم بتجميع هذة المعلومات لإنشاء كود لإحضار البيانات التى فى الحقل ba وإظهارها فى TextBox داخل الفورم
أى أننا نريد احضار النص Text الموجود فى قاعدة البيانات A فى الجدول B فى الحقل ba وربط البيانات DataBindings بمربع النص TextBox وبما أن DataSet قام بإحضار ما يلزمنا فى العمل فإننا سنذهب إلية ولن نذهب إلى قاعدة البيانات
يمكننا ترتيب السطر السابق لنحصل على جملة مفيدة كالتالى
TextBox.DataBindings.Add
وAdd لأننا نريد إضافتة
ثم نريد عرض Text الموجود فى DataSet المسماة CDataSet وبالتحديد فى الجدول B الحقل ba
("Text", CDataSet, "B.ba")
فتكون الصيغة الكاملة
TextBox.DataBindings.Add("Text", CDataSet, "B.ba")
ويجب أ ن نعتبرها قاعدة ويمكنكم دائما استخدام هذة القاعدة لإنشاء الكود
http://www.qahtaan.com/works/up/get....hpry1202155680
خصائص Currency Manager
والمقصود بهذة الخصائص هو العمليات التى يمكننا تنفيذها
1-Bindings
لربط مجموعة من العناصر ليتم التحكم بها من خلال Currency Manager
2-Countr

لمعرفة عدد الصفوف المرتبطة مع Currency Manager
3-Current

لاستدعاء الصف المرتبط حاليا مع Currency Manager
4-List

لعرض قائمة تكون مرتبطة بقاعدة البيانات مثل DataViews
5-Position

للتعامل مع الصف الحالى اعتمادا على رقم هذا الصف داخل قاعدة البيانات
الوظائف التى يمكن تنفيذها من خلال Currency Manager
1- AddNew إضافة جديد
2- CancelCurrentEdit إلغاء التغييرات
3- EndCurrentEdit إنهاء وحفظ
4- Re fresh تحديث وإعادة تعبئة البيانات
5- RemoveAt إزالة
ولكى نفهم ما هو الفرق بين الخاصية والوظيفة فإننا سنقوم بعمل مثال بسيط جدا
مثال : الربط البسيط
الغرض من هذا المثال هو كيف تتعلم أن تقوم بابتكار الكود دون أن تظل تبحث عن كود لإنشاء برنامجك
الان نقوم بعمل ربط مباشر وبسيط للفورم بقاعدة البيانات دون أن نستخدم Binding Navigator
مشروع جديد يحتوى على 4 زر Button و4 TextBox وكذلك 4 Lable
قم بتسمية الأزرار كالتالى
(السجل الأول, السابق, التالى, السجل الأخير)
فى خصائص Lable قم بتسميتها فى Text إلى الإسم , اسم الأب , المدينة , تليفون المنزل أو كما تريد أن تختار من حقول قاعدة البيانات وقم بترتيب TextBox فى شكل مناسب
-كليك يمين على الفورم ثم اذهب إلى خصائص Properties ثم قم بالذهاب إلى DataBindings ومنها قم بالضغط على Text ثم قم بالضغط على زر مربع الإختيار الموجود بة الخيار non ثم اضغط على Add project Data Source
-يظهر لك الان معالج إعداد مصادر البيانات قم باختيار Database ثم Next
-قم باختيار New Connection ثم يظهر لك معالج الإتصال بقاعدة البيانات قم باضغط على Browse ثم قم باختيار قاعدة البيانات التى تريد الاتصال بها وهى طبعا Northwind
-قم بالموافقة على إضافة قاعدة البيانات إلى المشروع ثم قم بالموافقة على حفظ المشروع باسم NorthwindConnectionString ثم Next تظهر لك الان محتويات قاعدة البيانات
قمت باختيار الجدول المعتاد employees والأربعة حقول وهى Firest Name وSecond Name وCity وHome Phone
-كليك يمين على مربع النص الأول الخاص بالإسم واذهب إلى خصائصة ثم إلى Data Binding ثم Text وقم بفتح Other Data Sources ثم NorthwindData Set ثم Employeesثم قم بالضغط على First Name
قم بتجربة البرنامح الان يظهر لك الإسم فى مربع النص
نحن الان قمنا بربط مربع النص TextBox1
الكود
قم بكتابة الكود التالى فى الفورم

كود:
Private m_CurrencyManager As CurrencyManager
هذة العبارة اختيارية m_CurrencyManager ويمكنك وضع أى جملة أو كلمة أو حتى حرف بدلا منها واستخدامها فى المثال
وستجد أن هناك كود تم إنشاؤة تلقائيا وهو هذا

كود:
Me.EmployeesTableAdapter.Fill(Me.NorthwindDataSet. Employees)
قم بتعبئة ما قمنا باختيارة من خلال Data Adaptor وهو موجود فى
كود:
(Dataset.Table (نقوم الان بربط مربع النص TextBox2 بالحقل LastName فإذا قمنا بتطبيق القاعدة

كود:
TextBox.DataBindings.Add("Text", CDataSet, "B.ba")
فإننا نستطيع ببساطة أن نقوم بإنشاء الأكواد الخاصة بمربعات النصوص الثلاثة الباقية فتكون كالتالى
كود:
TextBox2.DataBindings.Add("Text", NorthwindDataSet, "Employees.LastName")
TextBox3.DataBindings.Add("Text", NorthwindDataSet, "Employees.City")
TextBox4.DataBindings.Add("Text", NorthwindDataSet, "Employees.HomePhone")
وسنقوم بوضع هذا الكود داخل الفورم
يمكنكم الان إزالة الرابط الذى يربط مربع النص الأول بقاعدة البيانات وذلك عن طريق الذهاب إلى خصائص TextBox1 ثم إلى DataBinding ومنة إلى Text واختيار Non ثم كتابة سطر الكود الخاص بة وهو كالتالى

كود:
TextBox1.DataBindings.Add("Text", NorthwindDataSet, "Employees.FirstName")
.ولكننا أضفنا هذا السطر فى بداية الفورم

كود:
Private m_CurrencyManager As CurrencyManager
فما هو تعريف CurrencyManager ؟
نقوم الان بوضع تعريف لة ويكون التعريف طبقا للقاعدة التالية

كود:
m_CurrencyManager = DirectCast(Me.BindingContext(DataSet, "Table"), CurrencyManager)
وعندما ننظر إلى المثال الذى نحن بصددة نجد أن DataSet هنا هى NorthwindDataSet ونجد أن الجدول Table هو Employees فيكون التعريف على النحو التالى

كود:
m_CurrencyManager = DirectCast(Me.BindingContext(NorthwindDataSet, "Employees"), CurrencyManager)
ويمكنكم القياس على ذلك
الان قم بوضع تعريف CurrencyManager داخل الفورم ثم قم بتجربة البرنامج الان ستجد أن مربعات النصوص الأربعة قد تم تعبئتها بالبيانات
نحتاج الان إلى أكواد للإزرار
-فى زر الأول

كود:
m_CurrencyManager.Position = 0
-فى زر السابق

كود:
m_CurrencyManager.Position -= 1
-فى زر التالى

كود:
m_CurrencyManager.Position += 1
-فى زر الأخير

كود:
m_CurrencyManager.Position = m_CurrencyManager.Count – 1
يمكنكم تجربة المثال السابق فهو مهم
ويفضل اختيار قاعدة بيانات أخرى أو على الأقل جدول اخر وأضعف الإيمان حقول أخرى
وهذا هو رابط للمشروع
http://www.zshare.net/download/35367836c21be1
ولكن ليس هذا هو كل شىء فيبدوا أن هناك عدد من الوظائف نحتاج إليها مثل الإضافة والإزالة والبحث

أنتهى درس اليوم ... ويتبع........

محمد المعمري 06-02-2008 04:19 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
Part5
1-تطبيق على استخدام مدير التعاملات(Currency Manager)الجزء الأول

الجزء الأول
اليوم سنقوم بعمل تطبيق لما تعلمناة فى Part 4 الذى هو Currency Manager وسنتعلم كيف نستخدم الوظائف مثل AddNew وCancelCurrentEdit وEndCurrentEdit وRemoveAt والمثال الذى سنتعامل معة اليوم يصلح لأن يستخدم للتعامل مع بيانات الأفراد والمعلومات الخاصة بهم مثل موظف أو تلميذ أو ملف لأحد المرضى فى مستشفى أو ما شابة ذلك
أولا يجب أن نقوم بإنشاء قاعدة بيانات جديدة وستحتوى قاعدة البيانات على جدول واحد بة 7 حقول
يمكننا تسمية الجدول باسم مثل Information وتسمية قاعدة البيانات بأى اسم
الحقول هى
1-اسم الحقل ID
Data Type=AutoNumber
Indexed= Yes (No Duplicates)
2- FirstName
3- LastName
4- HomePhone
وكلها نص Text
5- Grade
Data Type=Number
6- BirthDate
Data Type= Date/Time
7- PictureFile
Data Type= Text
قم بفتح مشروع جديد ثم ضع المكونات الاتية داخل الفورم وهى كالتالى
-عدد 3 TextBox
-Date Time Picker
- عدد 6 RadioButtons
- PictureBox
-عدد 5 Lable
-عدد 11 Buttons
-OpenFileDialog
-PrintPreviewDialog
أمامنا الان عملية ترتيب هذة المكونات لتكون شكل ملائم ومناسب
-يجب وضع الستة RadioButton داخل GroupBox ونقم بتسميتها فى Text باسم مناسب
-فى خصائص PictureBox يمكنكم تغيير BackColor إلى أى لون كما يفضل تغيير خاصية Size إلى المقياس 3/2
بمعنى أن يكون عرض مربع الصورة إلى طول مربع الصورة = 2 إلى 3 يعنى لو الطول 15 يكون العرض 10 ولو العرض 80 يكون الطول 120 وهكذا
-من المستسحن تغيير الخاصية SizeMode إلى Zoom لكى تستطيع مشاهدة جوانب الصورة كاملة شاملة الحواف
-من الممكن تغيير خاصية الإسم فى الأزرار الخاصة بالتالى فى Text وبدلا من أن نكتب السابق والتالى يمكننا كتابة
الأول كالتالى |< والأخير هكذا >| وكلا من < و > للسابق والتالى فتصبح أزرار التحكم بصورة أفضل
إليكم 2 تصميم لهذا المشروع يمكنكم اختيار أحدهما أو ابتكار تصميم ثالث
http://www.qahtaan.com/works/up/get....bwmx1202303691
أو هذا التصميم
http://www.qahtaan.com/works/up/get....vlgt1202303691
أو ابتكار شكل جديد اخر اعتمادا على المكونات التى لديكم ومن المستحسن وضع كل محموعة من الأزرار داخل GroupBox فهى تظهر الشكل أكثر تماسكا وتعطية صورة احترافية
بعد الإنتهاء من التصميم يجب حفظة ونقل قاعدة البيانات إلى المجلد الذى قمت بحفظ التطبيق الجديد بة
الان ندخل إلى مرحلة التعريفات وشرح الأكواد وكتابتها
التسمية
هناك بعض المكونات يفضل تسميتها بأى اسم مناسب كالتالى
مربعات النصوص الثلاثة يتم تسميتها
txtFirstName وtxtLastName وtxtHomePhone
مجموعة GroupBox2 التى تحتوى على RadioButtons يمكن تسميتها إلى grpGrade
Lable الموجود أسفل صندوق الصورة يتم تسميتة إلى lblPhotoFile
وأخيرا قم بوضع Lable جديد فى أى مكان وقم بتسميتة lblGrade وقم بجعل الخاصية Visible إلى False
***
2-تطبيق على استخدام مدير التعاملات(Currency Manager)الجزء الثانى

الكود
سنقوم باستيراد أسماء المجالات NameSpaces وهى


كود:
Imports System.Data
Imports System.Data.OleDb
وطبعا سيتم كتابتها فى General التى تسمى بالتصريحات العامة وهى المنطقة التى تسبق أسطر إدخال الكود فى أعلى الصفحة


ثم الإعلان عن المتغيرات
كود:
Dim InfoConnection As OleDbConnection
Dim InfoCommand As OleDbCommand
Dim InfoAdapter As OleDbDataAdapter
Dim InfoTable As DataTable
Dim InfoManager As CurrencyManager
Dim InfoState As String
Dim InfoBookmark As Integer
يجب علينا الان أن نقوم بعمل الإتصال بقاعدة البيانات وكذلك إنشاء عوامل الإتصال DataSet وTable وDataAdapter وتعريف المتغيرات لذلك سنكتب الكود التالى فى الفورم

ولكن ما معنى ShowRelated و SetState
الأول ShowRelated وهو استدعاء لعرض Related وهذا الإسم اختيارى وأقصد ية المتعلقات ولكن ما هى المتعلقات ؟
هى الصورة وكذلك العناصر التى فى داخل المجموعة grpGrade والذى سنقوم باستخدام واسطة بينة وبين InfoTable ومذة الواسطة هى التى ستتحكم فى الإدخال والإخراج هى lblGrade ولكن ماهى محتويات Related هذا؟
لتعريف ذلك قم بكتابة الكود التالى

كود:

Private Sub ShowRelated()
Select Case lblGrade.Text
Case "1"
RadioButton1.Checked = True
Case "2"
RadioButton2.Checked = True
Case "3"
RadioButton3.Checked = True
Case "4"
RadioButton4.Checked = True
Case "5"
RadioButton5.Checked = True
Case "6"
RadioButton6.Checked = True
End Select
Call ShowPhoto()
ولكننا نلا حظ أننا فى نهاية الكود وضعنا Call ShowPhoto() فماذا سيكون الكود


كود:
Private Sub ShowPhoto()
If lblPhotoFile.Text <> "" Then
Try
PictureBox1.Image = Image.FromFile(lblPhotoFile.Text)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطاء فى تحميل الصورة", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Else
PictureBox1.Image = Nothing
End If
End Sub
ثم نقوم بإنشاء حدث الإغلاق بنفس الطريقة التى اتبعناها فى المثال رقم 2 (الإتصال بقاعدة البيانات وعرض محتوياتها)

كود:

Private Sub frmInfo_FormClosing(ByVal sender As Object, _
ByVal e As System.Windows.Forms. _
FormClosingEventArgs) Handles Me.FormClosing
If InfoState = "Edit" Or InfoState = "Add" Then
MessageBox.Show("يجب إنهاء التحرير أولا", "", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
e.Cancel = True
Else
Try
Dim InfoAdapterCommands As New OleDbCommandBuilder(InfoAdapter)
InfoAdapter.Update(InfoTable)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطاء فى حفظ قاعدة البيانات", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
InfoConnection.Close()
InfoCommand.Dispose()
InfoAdapter.Dispose()
InfoTable.Dispose()
End If
End Sub
ثم نقوم بوضع الكود الخاص بحالة التغير الخاصة لكل زر داخل grpGrade يعنى تحديد الحالة التى يكون كل RadioButton فيها Checked أو non Checked

كود:

Private Sub RadioButtonGrade_CheckedChanged _
(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged _
, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged _
, RadioButton5.CheckedChanged, RadioButton6.CheckedChanged
Dim ButtonChecked As RadioButton = CType(sender, RadioButton)
Select Case ButtonChecked.Text
Case "1"
lblGrade.Text = "1"
Case "2"
lblGrade.Text = "2"
Case "3"
lblGrade.Text = "3"
Case "4"
lblGrade.Text = "4"
Case "5"
lblGrade.Text = "5"
Case "6"
lblGrade.Text = "6"
End Select
End Sub
يجب الان أن نقوم بإنشاء إطار الطباعة أى الكادر الذى ستتم فية طباعة المعلومات وسأقوم بوضع كود سريع يمكنكم تخصيصة من ناحية الحجم والخطوط ....الخ

كود:

Private Sub PrintInfo(ByVal sender As Object _
, ByVal e As Drawing.Printing.PrintPageEventArgs)
Dim MyPen As Pen = New Pen(Color.Black, 3)
e.Graphics.DrawRectangle(MyPen, e.MarginBounds.X, e.MarginBounds.Y, 200, 350)
Dim MyFont As Font = New Font("Arial", 12, FontStyle.Bold)
Dim S As String = "أكتب هنا إسم المؤسسة أو الهيئة"
Dim SSize As SizeF = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black _
, e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)) _
, e.MarginBounds.Y + 15)
e.Graphics.DrawImage(PictureBox1.Image, _
e.MarginBounds.X + 25, e.MarginBounds.Y + 50, 150, 200)
e.HasMorePages = False
MyFont = New Font("Arial", 14)
Dim Y As Integer = e.MarginBounds.Y + 260
S = txtFirstName.Text
SSize = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black, _
e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)), Y)
Y += CInt(MyFont.GetHeight(e.Graphics))
S = txtLastName.Text
SSize = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black, _
e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)), Y)
Y += CInt(MyFont.GetHeight(e.Graphics))
S = "Grade " + lblGrade.Text
SSize = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black, _
e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)), Y)
End Sub
ثم نقوم بانشاء حدث الإنتقال والتركيز على مربع النص الأول عند الإضافة والتحرير

كود:
Private Sub txtFirstName_KeyPress(ByVal sender As System.Object _
, ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles txtFirstName.KeyPress
If e.KeyChar = ControlChars.Cr Then
txtLastName.Focus()
End If

ثم أكواد الأزرار
فى زر الأول

كود:
InfoManager.Position = 0
Call ShowRelated()
فى زر السابق

كود:
InfoManager.Position -= 1
Call ShowRelated()
فى زر التالى

كود:
InfoManager.Position += 1
Call ShowRelated()
فى زر الأخير

كود:
InfoManager.Position = InfoManager.Count - 1
Call ShowRelated()
فى زر جديد أو إضافة

كود:
InfoBookmark = InfoManager.Position
Call SetState("Add")
InfoManager.AddNew()
RadioButton1.Checked = True : lblGrade.Text = "1"
PictureBox1.Image = Nothing
lblPhotoFile.Text = ""
فى زر إلغاء أو تراجع

كود:
InfoManager.CancelCurrentEdit()
If InfoState = "Add" Then
InfoManager.Position = InfoBookmark
End If
Call ShowRelated()
Call SetState("View"
فى زر الحفظ


كود:
If txtLastName.Text.Trim = "" Then
MessageBox.Show("يجب إدخال إسم العائلة", "إدخال خاطىء", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
txtLastName.Focus()
Exit Sub
End If
Dim SavedItem As String = txtLastName.Text
Dim SavedRow As Integer
InfoManager.EndCurrentEdit()
InfoTable.DefaultView.Sort = "LastName"
SavedRow = InfoTable.DefaultView.Find(SavedItem)
InfoManager.Position = SavedRow
Call ShowRelated()
Call SetState("View")
فى زر تحرير

كود:
Call SetState("Edit")
فى زر تحميل الصورة

كود:
Try
If OpenFileDialog1.ShowDialog _
= Windows.Forms.DialogResult.OK Then
lblPhotoFile.Text = OpenFileDialog1.FileName
Call ShowPhoto()
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "خطاءفى فتح الصورة", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
فى زر حذف

كود:
If MessageBox.Show("هل أنت متأكد من أنك تريد حذف هذا السجل" _
, "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
InfoManager.RemoveAt(InfoManager.Position)
Call ShowRelated()
End If
Call SetState("View")
ثم زر الطباعة

كود:

Dim InfoDocument As Drawing.Printing.PrintDocument
InfoDocument = New Drawing.Printing.PrintDocument()
InfoDocument.DocumentName = "Info"
AddHandler InfoDocument.PrintPage, _
AddressOf Me.PrintInfo
Dim SavedPosition As Integer = InfoManager.Position
PrintPreviewDialog1.Document = InfoDocument
PrintPreviewDialog1.ShowDialog()
InfoDocument.Dispose()
InfoManager.Position = SavedPosition
وزر إنهاء

كود:

Close()


ورابط تحميل المشروع
http://www.zshare.net/download/37177295a64f52

أنتهى درس اليوم و الأمس معاً ,,,,,,,,, و يتبع.......

محمد المعمري 08-02-2008 01:51 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
3-مثال اخر على استخدام Currency Manager

المثال:1107953627:

http://www.qahtaan.com/works/up/get....kntx1202424449
أولا يجب أن نقوم بإنشاء قاعدة بيانات جديدة وستحتوى قاعدة البيانات على جدول واحد بة 7 حقول يمكننا تسمية الجدول باسم مثل Information وتسمية قاعدة البيانات بأى اسم مثلا Informations
الحقول هى
1-اسم الحقل ID
Data Type=AutoNumber
Indexed= Yes (No Duplicates)
2- FirstName
3- LastName
4- HomePhone
5- Grade
6- PictureFile
وكلها نص Text
7- BirthDate
ثم قم بحفظ قاعدة البيانات بصورة Access2000
قم بفتح مشروع جديد مستخدما فيجوال بيسيك 2005 مكوناتة كالتالى
-عدد 3 TextBox
-Date Time Picker
- PictureBox
-عدد 6 Lable
-عدد 12 Buttons
أمامنا الان عملية ترتيب هذة المكونات لتكون شكل ملائم ومناسب
-فى خصائص PictureBox يمكنكم تغيير BackColor إلى أى لون كما يفضل تغيير خاصية Size إلى المقياس 3/2بمعنى أن يكون عرض مربع الصورة إلى طول مربع الصورة = 2 إلى 3 يعنى لو الطول 15 يكون العرض 10 ولو العرض 80 يكون الطول 120 وهكذا
-من المستسحن تغيير الخاصية SizeMode إلى Zoom لكى تستطيع مشاهدة جوانب الصورة كاملة شاملة الحواف
-من الممكن تغيير خاصية الإسم فى الأزرار الخاصة بالتالى فى Text وبدلا من أن نكتب السابق والتالى يمكننا كتابة
الأول كالتالى |< والأخير هكذا >| وكلا من < و > للسابق والتالى فتصبح أزرار التحكم بصورة أفضل
ولتغيير حجم Lable الذى سيكون أسفل صندوق الصورة قم بتغيير الخاصية Autosize إلى False
سنقوم بتسمية بعض المكونات وهذا الموضوع اختيارى لكننى قمت بإعادة تسمية المكونات التالية
Form1=frmInfo
Lable أسفل الصورة= lblPhotoFile
TextBox1= txtFirstName
TextBox2=txtLastName
TextBox3=txtHomePhone
TextBox4=txtGrade
btnFirstو btnPrevious و btnNext و btnLast و btnEdit و btnSave و btnCancel و btnAdd و btnDelete و btnPrint و btnExit و btnLoadPhoto
قم الان بحفظ المشروع ثم قم بنقل قاعدة البيانات إلى المجلد الذى بة المشروع
ندخل الان إلى مرحلة كتابة الكود

سنقوم باستيراد أسماء المجالات NameSpaces التى سنحتاجها وهى

كود:
Imports System.Data
Imports System.Data.OleDb

وطبعا سيتم كتابتها فى General التى تسمى بالتصريحات العامة وهى المنطقة التى تسبق أسطر إدخال الكود فى أعلى الصفحة
ثم الإعلان عن المتغيرات

كود:
Dim InfoConnection As OleDbConnection
Dim InfoCommand As OleDbCommand
Dim InfoAdapter As OleDbDataAdapter
Dim InfoTable As DataTable
Dim InfoManager As CurrencyManager
Dim InfoState As String
Dim InfoBookmark As Integer

يجب علينا الان أن نقوم بعمل الإتصال بقاعدة البيانات وكذلك إنشاء مكونات الإتصال DataSet وTable وDataAdapter وتعريف المتغيرات
لتعريف InfoConnection فإن الكود يكون التالى

كود:
InfoConnection = New OleDbConnection _
("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " _
+ Application.StartupPath + "\..\..\Informations.mdb")
InfoConnection.Open()ثم InfoCommand


ثم InfoAdapter


كود:
InfoAdapter = New OleDbDataAdapter()
InfoAdapter.SelectCommand = InfoCommand
InfoTable = New DataTable()
InfoAdapter.Fill(InfoTable)
ثم نقوم بوضع DataBinding

كود:
txtFirstName.DataBindings.Add("Text", InfoTable, "FirstName")
txtLastName.DataBindings.Add("Text", InfoTable, "LastName")
txtHomePhone.DataBindings.Add("Text", InfoTable, "HomePhone")
txtGrade.DataBindings.Add("Text", InfoTable, "Grade")
DateTimePicker1.DataBindings.Add("Text", InfoTable, "BirthDate")
lblPhotoFile.DataBindings.Add("Text", InfoTable, "PictureFile")ثم InfoManager


كود:
InfoManager = DirectCast(Me.BindingContext(InfoTable), CurrencyManager)ثم Call

كود:
Call SetState("View")
Call ShowPhoto()
ويتم كتابة كل ما سبق فى الفورم
ثم نقوم بإنشاء SetState وهى تحدد أوضاع الأزرار وصناديق النصوص من ناحية نشط أو غير نشط وللقراءة فقط

كود:

Private Sub SetState(ByVal AppState As String)
InfoState = AppState
Select Case AppState
Case "View"
btnFirst.Enabled = True
btnPrevious.Enabled = True
btnNext.Enabled = True
btnLast.Enabled = True
btnEdit.Enabled = True
btnSave.Enabled = False
btnCancel.Enabled = False
btnAdd.Enabled = True
btnDelete.Enabled = True
btnPrint.Enabled = True
btnExit.Enabled = True
txtFirstName.ReadOnly = True
txtLastName.ReadOnly = True
txtHomePhone.ReadOnly = True
DateTimePicker1.Enabled = False
btnLoadPhoto.Enabled = False
txtGrade.ReadOnly = True
Case "Edit", "Add"
btnFirst.Enabled = False
btnPrevious.Enabled = False
btnNext.Enabled = False
btnLast.Enabled = False
btnEdit.Enabled = False
btnSave.Enabled = True
btnCancel.Enabled = True
btnAdd.Enabled = False
btnDelete.Enabled = False
btnPrint.Enabled = False
btnExit.Enabled = False
txtFirstName.ReadOnly = False
txtLastName.ReadOnly = False
txtHomePhone.ReadOnly = False
DateTimePicker1.Enabled = True
btnLoadPhoto.Enabled = True
txtGrade.ReadOnly = False
End Select
txtFirstName.Focus()
End Sub
ثم ShowPhoto

كود:

Private Sub ShowPhoto()
If lblPhotoFile.Text <> "" Then
Try
PictureBox1.Image = Image.FromFile(lblPhotoFile.Text)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطاء فى تحميل الصورة", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Else
PictureBox1.Image = Nothing
End If
End Sub
ثم نقوم بإنشاء حدث الإغلاق بنفس الطريقة التى اتبعناها فى موضوع (الإتصال بقاعدة البيانات وعرض محتوياتها)

كود:

Private Sub frmInfo_FormClosing(ByVal sender As Object, _
ByVal e As System.Windows.Forms. _
FormClosingEventArgs) Handles Me.FormClosing
If InfoState = "Edit" Or InfoState = "Add" Then
MessageBox.Show("يجب إنهاء التحرير أولا", "", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
e.Cancel = True
Else
Try
Dim InfoAdapterCommands As New OleDbCommandBuilder(InfoAdapter)
InfoAdapter.Update(InfoTable)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطاء فى حفظ قاعدة البيانات", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
InfoConnection.Close()
InfoCommand.Dispose()
InfoAdapter.Dispose()
InfoTable.Dispose()
End If
End Sub
ثم نقوم بإنشاء إطار طباعة الكارت أو البطاقة التعريفية وسوف نقوم برسم هذا الإطار كالتالى وهذا مثال فقط للإطار ويمكنكم تطويرة حسب الرغبة


كود:
Private Sub PrintInfo(ByVal sender As Object _
, ByVal e As Drawing.Printing.PrintPageEventArgs)
Dim MyPen As Pen = New Pen(Color.Black, 3)
e.Graphics.DrawRectangle _
(MyPen, e.MarginBounds.X, e.MarginBounds.Y, 200, 350)
Dim MyFont As Font = New Font("Arial", 12, FontStyle.Bold)
Dim S As String = "أكتب هنا إسم المؤسسة أو الهيئة"
Dim SSize As SizeF = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black _
, e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)) _
, e.MarginBounds.Y + 15)
e.Graphics.DrawImage(PictureBox1.Image, _
e.MarginBounds.X + 25, e.MarginBounds.Y + 50, 150, 200)
e.HasMorePages = False
MyFont = New Font("Arial", 14)
Dim Y As Integer = e.MarginBounds.Y + 260
S = txtFirstName.Text
SSize = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black, _
e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)), Y)
Y += CInt(MyFont.GetHeight(e.Graphics))
S = txtLastName.Text
SSize = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black, _
e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)), Y)
Y += CInt(MyFont.GetHeight(e.Graphics))
S = txtGrade.Text
SSize = e.Graphics.MeasureString(S, MyFont)
e.Graphics.DrawString(S, MyFont, Brushes.Black, _
e.MarginBounds.X + CInt(0.5 * (200 - SSize.Width)), Y)
End Sub
ثم نقوم بانشاء حدث الإنتقال والتركيز على مربع النص الأول عند الإضافة والتحرير

كود:

Private Sub txtFirstName_KeyPress(ByVal sender As _
System.Object, ByVal e As System.Windows.Forms. _
KeyPressEventArgs) Handles txtFirstName.KeyPress
If e.KeyChar = ControlChars.Cr Then
txtLastName.Focus()
End If
End Sub
وأخيرا الأكواد الخاصة بأزرار المشروع
فى زر الأول

كود:

InfoManager.Position = 0
Call ShowPhoto()
فى زر السابق

كود:

InfoManager.Position -= 1
Call ShowPhoto()
فى زر التالى

كود:

InfoManager.Position += 1
Call ShowPhoto()
فى زر الأخير

كود:

InfoManager.Position = InfoManager.Count - 1
Call ShowPhoto()
ثم إضافة

كود:

InfoBookmark = InfoManager.Position
Call SetState("Add")
InfoManager.AddNew()
PictureBox1.Image = Nothing
lblPhotoFile.Text = "
ثم إلغاء

كود:

InfoManager.CancelCurrentEdit()
If InfoState = "Add" Then
InfoManager.Position = InfoBookmark
End If
Call ShowPhoto()
Call SetState("View"
ثم حفظ

كود:

If txtLastName.Text.Trim = "" Then
MessageBox.Show("يجب إدخال إسم العائلة", "إدخال خاطىء", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
txtLastName.Focus()
Exit Sub
End If
Dim SavedItem As String = txtLastName.Text
Dim SavedRow As Integer
InfoManager.EndCurrentEdit()
InfoTable.DefaultView.Sort = "LastName"
SavedRow = InfoTable.DefaultView.Find(SavedItem)
InfoManager.Position = SavedRow
Call ShowPhoto()
Call SetState("View")
ثم تحرير

كود:

Call SetState("Edit")
ثم تحميل صورة

كود:

Try
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
lblPhotoFile.Text = OpenFileDialog1.FileName
Call ShowPhoto()
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "خطاءفى فتح الصورة", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
ثم طباعة

كود:

Dim InfoDocument As Drawing.Printing.PrintDocument
InfoDocument = New Drawing.Printing.PrintDocument()
InfoDocument.DocumentName = "Info"
AddHandler InfoDocument.PrintPage, AddressOf Me.PrintInfo
Dim SavedPosition As Integer = InfoManager.Position
PrintPreviewDialog1.Document = InfoDocument
PrintPreviewDialog1.ShowDialog()
InfoDocument.Dispose()
InfoManager.Position = SavedPosition
ثم حذف

كود:

If MessageBox.Show("هل أنت متأكد من أنك تريد حذف هذا السجل" _
, "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
InfoManager.RemoveAt(InfoManager.Position)
Call ShowPhoto()
End If
Call SetState("View")
ثم إغلاق

كود:

Close()

وهذا رابط تحميل المشروع
http://www.zshare.net/download/37241619ac3ce2/0

أنتهى درس اليوم و يتبع..........
/////////////////////
مبرمج آل معمر

محمد المعمري 08-02-2008 05:54 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
Part6-العمل مع قواعد بيانات SQL
***
أولا:الإتصال بقاعدة بيانات SQL فى SQL 2005 Express

أخذنا فكرة سريعة عن كيفية إنشاء قاعدة بيانت SQL باستخدام SQL 2005 Express فى Part 1 والان يمكننا أن نبداء فى التعامل مع قواعد بيانات SQL وفى البداية يجب أن نعرف أولا كيفية الإتصال بقاعدة بيانات SQL ولعمل ذلك قم بتحميل قاعدة بيانات Northwind من الرابط التالى
http://www.zshare.net/download/4017341c9d922d
ثم قم بفك الضغط وقم بنسخها إلى دليل مناسب وليكن C
1-قم بفتح الفيجوال ستوديو 2005 ثم اذهب إلى ToolBar وبالتحديد إلى View وقم باختيار Server Explorer سيظهر لك الان مستعرض السيرفر أقصى اليسار فى نفس مكان ToolBox
http://www.qahtaan.com/works/up/get....nsuw1202482047
2-كليك يمين بالماوس على Data Connection ثم قم باختيار Add Connection
http://www.qahtaan.com/works/up/get....hkoy1202482047
3-يظهر لك الان لوحة إضافة الإتصال وهى تفتح فى الوضع الإفتراضى على Microsoft Access Database File قم بالضغط على Change
4- قم باختيار Microsoft SQL Server Database File ثم OK
http://www.qahtaan.com/works/up/get....jlr31202482047
5-قم بالضغط على Browse ثم اذهب إلى الدليل الذى قمت بوضع قاعدة البيانات بة
http://www.qahtaan.com/works/up/get....ztd31202482047
6-للتأكد من أن الإتصال قد تم بصورة صحيحة قم بالضغط على Test Connection ثم OK
http://www.qahtaan.com/works/up/get....r6qk1202482047
7-الان تم الاتصال بقاعدة البيانات ويمكنك استعراض محتوياتها من جداول وغيرها من المكونات وذلك بالضغط على +
http://www.qahtaan.com/works/up/get....h4jz1202482302

أنتهى درس اليوم و يتبعـــــــــ..............................
///////////////////////
مبرمج آل معمر

محمد المعمري 10-02-2008 12:49 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
ثانيا :إنشاء مصدر البيانات وإضافة عناصر التحكم

فى هذا المثال سنقوم بربط أكثر من جدول داخل مشروع واحد

-سنقوم الان بفتح مشروع جديد ثم نقوم بتنشيط الإتصال عن طريق عمل Re fresh وذلك عن طريق كليك يمين على NORTHWIND.MDF الموجودة فى Server Explorer أو انشاء اتصال جديد إذا لم نكن قمنا بعمل الاتصال من قبل
-فى أقصى اليمين وفى Solution Explorer قم بالضغط على Data Sources ثم اضغط على Add New Data Source
-قم باختيار Database ثم Next سوف تجد NORTHWIND.MDF فى مربع الاتصال متصلة بالفعل فإن لم تكن متصلا حتى هذة اللحظة يمكنك الاتصال وذلك عن طريق الضغط على New Connection ثم اتباع الخطوات السابقة ثم Next
http://www.qahtaan.com/works/up/get....nsty1202593287
http://www.qahtaan.com/works/up/get....opqs1202593287
-تظهر الان رسالة تفيد بأنة هل تريد نسخ ملف قاعدة البيانات هذا إلى مجلدالمشروع والمستحسن فى هذة الحالة الموافقة حتى لا تضطر لأن تقوم بالاتصال فى كل مرة تقوم بفتح المشروع وحتى تصبح قاعدة البيانات جزء من المشروع قم بالضغط على Yes
http://www.qahtaan.com/works/up/get....jkx81202593287
-قام المعالج الان باختيار اسم افتراضى للاتصال وهو NORTHWNDConnectionString يمكنك تغيير الاسم أو الاستمرار على الاسم الحالى ثم اضغط Next
-سيقوم المعالج الان بفتح لوحة اختيار مكونات قاعدة البيانات قم بالضغط على علامة + الموجودة بجانب Tables سيتم عرض كل الجداول فى هذا المثال سنقوم باختيار عدد من الجداول وهى Customers و Orders ثم Orders Details لذلك قم بالتأشير أمام هذة الجداول وستجد أن المعالج قد قام بوضع اسم افتراضى DataSet وهو NORTHWNDDataSet يمكنك الإستمرار وذلك بالضغط على Finish
http://www.qahtaan.com/works/up/get....kmtv1202593287
-يظهر لنا الان فى Data Source الجداول التى قمنا باختيارها
-قم بالضغط على الجدول الأول Customers فتظهر لك قائمة منسدلة بها عدد من الخيارات قم باختيار Details
http://www.qahtaan.com/works/up/get....78gz1202593287
-قم بالضغط على الجدول Customer بزر الماوس الأيسر مع الاسمرار بالضغط ثم قم بسحبة إلى داخل الفورم سيتم إدراج مكونات الجدول تلقائيا إلى داخل الفورم ويمكنك الان تغيير أسماء العناصر المدرجة وترتيب العناصر كما تريد
-سنقوم بعمل نفس الطريقة السابقة مع الجدول Orders ثم مع جدول Order Details ولكن مع اختيار DataGirdView بدلا من Details ويمكننا تغيير حجمهما ليصبحان ملائمان لحجم الفورم أو كما تريد
قم الان بتجربة المشروع عن طريق الضغط على F5
http://www.qahtaan.com/works/up/get....klsu1202593631

أنتهى درس اليوم و يتبع.........

محمد المعمري 10-02-2008 07:36 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
ثالثا : طريقة إضافة الإستعلام باستخدام FillBy

لكى نتعامل مع هذاالمشروع يجب علينا أن نفهم الغرض منة وكيف تسير الأمور......
-يحتوى الجدول الأول Customers على بيانات العميل و كل عميل لة ID أى CustomerID بالإضافة لباقى البيانات الخاصة بكل عميل
-الجدول الثانى Orders ويتضمن بيانات خاصة بالطلبية مثل OrderID ولا بد أن تكون الطلبية هذة موجهة إلى أحد العملاء لذلك فإن الجدول
هذا يحتوى أيضا على تعريف العميل CustomerID بالإضافة إلى باقى البيانات مثل التاريخ...الخ
-الجدول الثالث Order Details يحتوى على محتويات الطلبية وهى OrderID وPrudectID الذى هو رقم تعريف المنتج وكذلك الكمية Quntity وسعر الوحدة UnitPrice وكذلك الخصم Discount إذن من خلال ما سبق تكون طريقة ربط هذاة الجداول فى منتهى السهولة حيث أن ربط الحقل Customer ID الموجود فى الجدول Customers بالحقل CustomerID الموجود بالجدول Orders ثم ربط الحقل OrderID الموجود بالجدول Orders بالحقل OrderID الموجود بالجدول Order Details هو الطريقة المثالية للربط يمكن لمن يريد تجربة ذلك أن يقوم بإنشاء قاعدة بيانات جديدة اعتمادا على هذة المعلومات أو الاستمرار باستخدام قاعدة بيانات Nowrthwind وهذا مخطط بسيط يوضح عملية الربط بالنسبة لقاعدة البيانات التى نحن بصددها
http://www.qahtaan.com/works/up/get....puvy1202660770
سنقوم بإضافة استعلام فى Customers ولعمل ذلك
كليك يمين على CustomersTableAdapte ثم Add Query
http://www.qahtaan.com/works/up/get....hjqr1202660770
يظهر لك الان ديالوج Search Criteria Builder ومعناة منشىء معايير البحث ويوجد بة استعلام افتراضى فى مربع Query Text سنقوم بإضافة هذة العبارة فى نهاية السطر


كود
WHERE CustomerID = @CustomerID


http://www.qahtaan.com/works/up/get....izuh1202660770


ثم OK
يظهر لك الان FillByCustomerIDToolStrip فى أعلى الفورم قم بعمل كليك يمين بالماوس علي ToolStrip’s CustomerID text box ثم Convert to اختر ComboBox
http://www.qahtaan.com/works/up/get....hinu1202660770
الان سنقوم بتغيير بعض خصائص هذا ComboBox
قم بعمل كليك يمين بالماوس علية واختر Properties ثم اذهب إلى لوحة الخصائص وقم بتغيير الخصائص الاتية
-الإسم Name إلى cboCustomerID بدلا من CustomerIDToolStripTextBox
-قم بتغيير الخاصية فى DropDownStyle إلى DropDownList
-ثم خاصية DropDownWidth إلى 75
-إذهب إلى الخاصية Item ثم قم بالضغط على Collection تظهر لك لوحة تحرير النص قم بكتابةعدد من CustomerID فى كل سطر مثلا
ALFKI
ANATR
ANTON

http://www.qahtaan.com/works/up/get....bs371202660770

وذلك على سبيل التجربة ثم قم بتجربة البرنامج عن طريق F5 ويمكنك تجربة ComboBox لمشاهدة محتوياتة
نذهب الان إلى خصائص FillByCustomerID button ونقوم بتغيير الخصائص التالية
-النص فى الخاصية Text إلى Get Orders ثم قم بتغيير قيمة ToolTipText إلى Select a Customer ID
نذهب الان إلى خصائص FillByCustomerID button ونقوم بتغيير الخصائص التالية
-النص فى الخاصية Text إلى Get Orders ثم قم بتغيير قيمة ToolTipText إلى Select a Customer ID
الان قم بعمل كليك يمين على أيكونة الحفظ الموجودة فى Binding Navigator ثم قم بنسخها وقم بحذف Binding Navigator ثم قم بعمل لصق داخل Tool Strip
http://www.qahtaan.com/works/up/get....5qn11202660927
قم بتجربة العمل وذلك عن طريق استدعاء أحد CustomerID الموجودة فى ComboBoxثم GetOrder سيقوم بإحضار بيانات العميل المطلوب
http://www.qahtaan.com/works/up/get....lrsu1202660927
سنقوم الان بإضافة استعلام اخر
-كليك يمين بالماوس على OrdersTableAdapt ثم Add Query
-سنقوم بإضافة العبارة التالية فى نهاية الاستعلام الافتراضى الموجود فى مربع Query Text



كود:

WHERE CustomerID = @CustomerID ORDER BY OrderID DESC
ثم نقوم بإضافة استعلام اخير
-كليك يمين بالماوس على Orders_DetailsTableAdapt ثم Add Query
-سنقوم بإضافة العبارة التالية فى نهاية الاستعلام الافتراضى الموجود فى مربع Query Text
http://www.qahtaan.com/works/up/get....qrsv1202660927
سنقوم الان بإحداث بعض التغييرات البسيطة فى الكود
قم بالضغط على الفورم ضغطة مزدوجة لفتح صفحة الكود ثم قم بحذف الجزء الموضح بالصورة ثم قم بتجربة البرنامج
http://www.qahtaan.com/works/up/get....rstw1202660927
كيفية عمل هذا البرنامج؟:confused:
http://www.qahtaan.com/works/up/get....ilmy1202660927
-عندما تقوم باستدعاء ID العميل فى القائمة الأولى وليكن ALFKI فإنة يتم استدعاء البيانات الشخصية من الجدول Customers ويتم إظهارها فى مربعات Detailes بمجرد الضغط على GetOrder
-عندما تقوم بكتابة نفس ID الذى هو ALFKI فى مربع النص فى القائمة الثانية ثم تقوم بالضغط على
FILLByCustomerID فإنة سيقوم بعرض كل أوردر تم تنفيذة لحساب ALFKI فيظهر كل Order داخل
DataGird 1 مصحوبا بكل بياناتة فقط دون عرض محتوياتة من سلع أو منتجات
-عندما تقوم بكتابة نفس ID الذى هو ALFKI فى مربع النص فى القائمة الثالثة ثم تقوم بالضغط على
FILLByCustomerID فإنة سيقوم بعرض كل منتج تم إخراجة لحساب أوردرات ALFKI داخل DataGird 2
فيظهر كل منتج مصحوباببيانات Order الذى تم فية خروج هذة السلعة
توضيح
العميل الذى ID لة هو ALFKI
-طبقا لمحتويات DataGird 1 فإن هذا العميل تم تنفيذ 6 طلبيات لة وهى 11011و10952و10835و10702و10692و10643
-كما أنة وطبقا لما هو موضح فى DataGird 2 فإنة خلال هذة الطلبيات قام بسحب المنتجات التالية
فى الطلبية رقم 10835 أخذ عدد 2 من المنتج 77 بسعر 13 وتم عمل خصم مقدارة 0.2 ...الخ
ولكن هل بذلك انتهى هذا المشروع؟:confused:
بالطبع لا فلا زال هناك الكثير فليس من المعقول أن نقوم باستدعاء كل بيان من البيانات بصورة
منفصلة نريد أن نقوم باستدعائهم بضغطة واحدة كما نريد إضافة وحذف وتعديل.....الخ
فكيف نقوم بذلك؟:confused:
هذا ما سنعرفة فى الجزء القادم
يمكنكم تجربة ما قمنا بإنجازة حتى هذة المرحلة بتحميل المشروع من الرابط التالى
http://www.zshare.net/download/407611846e7fb2
***
رابعا: دمج مربعات النص إلى ComboBox

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



كود:

Private Sub FillByCustomerIDToolStripButton1_Click
ثم قم بنسخ الكود التالى منة



كود:

Me.OrdersTableAdapter.FillByCustomerID(Me.NORTHWNDDataSet.Orders, CustomerIDToolStripTextBox.Text)
ثم قم بتغيير النص CustomerIDToolStripTextBox.Text إلى cboCustomerID.Text فيصبح الكود كاملا كالتالى




كود:

Me.OrdersTableAdapter.FillByCustomerID(Me.NORTHWNDDataSet.Orders, cboCustomerID.Text)
ومعنى هذة الخطوة أنة سيستخدم النص الموجود فى ComboBox وليس الموجود فى شريط الأدوات الثانى ثم نقوم بلصق النص بعد تعديلة بداخل كود ComboBox الذى هو يبداء بالسطر التالى




كود:

Private Sub FillByCustomerIDToolStripButton_Click

سنقوم بعمل نفس الطريقة مع شريط الأدوات الثالث الخاص بالجدول Order_Detailes
فيصبح الكود كالتالى


كود:

Me.Order_DetailsTableAdapter.FillByCustomerID(Me.NORTHWNDDataSet.Order_Details, cboCustomerID.Text)
الان نقوم بحذف كلا من شريط الأدوات FillByCustomerIDToolStrip1 وشريط الأدوات FillByCustomerIDToolStrip2وكذلك الكود الخاص بهما
قم الان بتجربة البرنامج وقم باستدعاء أحد العملاء ثم اضغط GetOrder لتجد الان أن كافة البيانات بالجداول الثلاثة قد تم تعبئتها
بهذة المرحلة نلاحظ الاتى
-لم نقم باستخدام أى كود من أكواد الفيجوال بيسيك
-يمكن لمستخدمى لغة #C استخدام نفس الطريقة حتى هذة المرحلة
بدمج مربعات النصوص الثلاثة إلى ComboBox تنتهى هذة المرحلة و Part6
يمكنكم تحميل المشروع من

الرابط التالى

http://www.zshare.net/download/411063349c0e10

وبهذ أنتهى درس اليوم و يتبع بأذن الله.......

محمد المعمري 11-02-2008 06:18 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
خامسا: ربط قواعد بياناتSQLServer وانشاء زر البحث باستخدام ADO.NET 2.0
سنقوم فى هذا اليوم بمعرفة كيفية عمل ربط للفورم بقاعدة بيانات SQL من خلال الاتصال بسيرفر SQL2005Express وباستخدام ADO.NET 2.0
نصيحة فى البداية
يفضل عمل مجلد اسمة Database ووضع قواعد البيانات بداخلة ليسهل ايجادها
قم بفتح الفيجوال ستوديو ثم اضغط على View الموجودة فى شريط الأدوات وقم باختيار Server Explorer
http://www.qahtaan.com/works/up/get....suwy1202742101
تظهر لك نافذة مستعرض السيرفر فى أقصى اليسار قم بعمل كليك يمين بالماوس على Data Connection ثم اضغط على Add Connection

http://www.qahtaan.com/works/up/get....mnpx1202742101
الان تظهر أمامك نافذة Choose Data Source قم باختيار Microsoft SQL Server ثم Continue
http://www.qahtaan.com/works/up/get....h1mr1202742101
فى مربع Server Name نقوم بكتابة اسم السيرفر وحيث أننا سنعمل على السيرفر المحلى والذى هو لدينا SQL Express 2005 سيكون اسم السيرفر هو ./sqlexpress من الشمال لليمين طبعا
نفترض الان أننا نريد أن نقوم باختيار قاعدة بيانات Northwind
قم بالتأشير أمام Attach a Database File ثم قم بإيجادها عن طريق الضغط على Browse والتوجة للمسار الذى قمت بوضع قاعدة البيانات بة ثم قم بعمل اختبار للاتصال عن طريق الضغط على Test Connection عند النجاح اضغط OK و عند الفشل فهذا أمر اخر
http://www.qahtaan.com/works/up/get....kquv1202742101
الان تم الاتصال بنجاح
نذهب إلى قائمة File ثم New Project ونقوم باختيار Windows Application ثم نقم بتسميتة حسب الرغبة
قم بالضغط الان على Data Source فى أقصى اليمين ثم Add New Data Sopurce

http://www.qahtaan.com/works/up/get....lotu1202742101


ثم نختار Database و next
http://www.qahtaan.com/works/up/get....noqu1202742268
تأكد من أن قاعدة البيانات الموجودة هى المطلوبة وليست قاعدة أخرى فإن لم تكن فيمكنك احتيارها يدويا

http://www.qahtaan.com/works/up/get....xyz21202742268

فى الخطوة التالية سنختار No ومعنى ذلك أننا سنظل مرتبطين بالسيرفر

http://www.qahtaan.com/works/up/get....sgkz1202742269
نقوم الان باختيار الجدول التى نريدها وقد قمت باختيار الجدولين Customers و OrderDetails ثم يمكنكم أيضا تغيير اسم DataSet إلى CustomerOrderDetails DataSet أو تركها بدون تسمية ثم Finish

http://www.qahtaan.com/works/up/get....opsx1202742269
الان لدينا عدد 2 جدول قم بالضغط بالماوس على السهم الموجود بحافة أحد الجدولين تظهر لك قائمة منسدلة قم باختيار Details فى الجدول Customer ثم قم بالضغط على الجدول بالماوس وسحبة إلى داخل الفورم ووضعة بشكل مناسب
http://www.qahtaan.com/works/up/get....hmst1202742269
بالنسبة للجدول الثانى قم بعمل نفس الشىء ولكن قم باختيار DataGirdView ثم قم بسحبة بنفس الطريقة إلى داخل الفورم وقم بوضعة هو أيضا بشكل مناسب
http://www.qahtaan.com/works/up/get....lnrt1202742410
أصبح لدينا الان فورم جاهز تماما ومرتبط بقاعدة بيانات وقابل للعمل بكافة وظائفة
http://www.qahtaan.com/works/up/get....pqsy1202742410
يمكنكم الان تجربة تشغيل البرنامج بالضغط على F5 وتجربة عمل حذف أو إضافة أو تعديل لأحد الحقول يبدوا لى أن كل الوظائف تعمل بكفاءة دون أن نقوم بكتابة حرف كود واحد ويمكن عمل ذلك أيضا فى #C بدون أى اختلاف


لماذا قمنا فى هذة الخطوة باختيار NO ؟

قمنا باختيار No بغرض عدم استحضار قاعدة البيانات إلى مجلد المشروع ليصبح المشروع كلة قائما على وجود قاعدة البيانات على السيرفر بغرض عمل محاكاة لقاعدة بيانات موجودة على سيرفر بعيد لن يسمح لك أصلا باستقدام قاعدة البيانات إلى داخل المشروع وليصبح المشروع كلة Server dependent أى أنة لن يسمح السيرفر لك لك أيضا بعمل تحديث أو إضافة للبيانات إلا إذا كنت متصلا بة بالفعل لذلك كل من قام بتحميل المشروعات من الروابط لن تعمل معة لهذا السبب
ماذا لو أننا قمنا باختيار Yes ؟
إذا قمنا باختيار Yes بافتراض أن السيرفر يسمح بهذا الأمر أو أن لديك الصلاحيات لذلك سيتم استيراد القاعدة إلى المشروع ويمكنك عمل أى تغيير فى البيانات الموجودة داخل قاعدة البيانات وعلى ذلك ستحتاج لعمل تزامن مع السيرفر على فترات متفاوتة ومعنى تزامن أى تحديث للبيانات خلال أزمنة محددة مثلا تحديث البيانات فى الساعة 12 مساء ليتم نقل التغييرات التى حدثت فى قاعدة البيانات إلى القاعدة الرئيسبة على السيرفر ولكن هذا الموضوع لا يتم تلقائيا ولكن يلزمة عمل مشروع اخر مع السيرفر وهو مشروع تزامن قاعدة البيانات Database Sync
كيف يمكننا عمل بحث على قاعدة البيانات هذة سواء كانت موجودة على السيرفر أو كانت Sync ؟
أنتهى الدرس

يتبع بأذن الله .....

محمد المعمري 15-02-2008 02:21 AM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
كيفية عمل بحث فى داخل قاعدة بيانات SQL فى ADO.NET 2.0

-قم بعمل مشروع جديد على قاعدة بيانات Payables بنفس الطريقة التى شرحناها بالأمس واختر الجدول Vendor ثم تابع الخطوات إلى نهايتها ثم قم بإدراج Data Gird View إلى
الفورم بنفس الطريقة التى اتبعناها سابقا
- بعد أن تنتهى من إنشاء المشروع قم بالضغط على زر التخصيص فى أقصى اليمين على حافة Data Gird View ومن القائمة اختر Dock in Parent Container ووظيفة هذة الخاصية هو عمل اتساع أقصى لل Data Gird View لتملاء الفورم
http://www.qahtaan.com/works/up/get....nouw1203030820
قم بالضغط على F5 لتجربة البرنامج ثم قم بتغيير أحد البيانات على سبيل التجربة ثم الضغط على زر Save ثم أغلقة وأعد فتحة لنرى إن كان التغيير الذى قمت بعملة قد تم حفظة أم لا
-بعد التأكد من صحة العمل سنقوم بعمل فورم البحث داخل قاعدة البيانات هذة
-قم بالضغط على Solution Explorer لرؤية مكونات المشروع
-كليك يمين على رمز المشروع فى أعلى Solution Explorer ثم Add ثم اختر Windows Form

http://www.qahtaan.com/works/up/get....ilmp1203030820
قم بتسمية الفورم الجديد VendorSearch كما هو موضح أمامكم ثم اضغط Add
http://www.qahtaan.com/works/up/get....djsm1203030820
الان تمت إضافة الفورم اذهب الان إلى شريط الأدوات Tool Bar واضغط على Project ثم اختر Vendor Properties وهى Vendor لأننى قمت بتسمية المشروع كذلك وسيختلف الاسم طبعا طبقا لاسم المشروع ثم قم بتغيير Startup Form من Form1 ليصبح VendorSearch ووظيفة هذة الخطوة هى أن نجعل فورم البحث يظهر بدلا من الفورم الأول عند تشغيل المشروع ثم اضغط F5 للتأكد من أن الفورم الجديد هو الذى سيظهر عند تشغيل المشروع

http://www.qahtaan.com/works/up/get....woz71203030820
http://www.qahtaan.com/works/up/get....qruv1203030820
اذهب الان إلى شريط الأدوات Tool Bar واضغط على Data ثم اضغط Add New Data Source
-قم بمتابعة خطوات المعالج كما سبق ثم اختر نفس الجدول وقم بتسمية DataSet باسم VendorSearchDataSet
-قم بالذهاب إلى نافذة DataSource ثم قم بإدراج Data GirdView من VendorSearchDataSe إلى داخل الفورم وقم بظبطها وعمل Dock in Parent Container كما سبق
- إضغط على زر التخصيص فى أقصى اليمين على حافة Data Gird View ومن القائمة اختر Add Query

http://www.qahtaan.com/works/up/get....gorx1203030973
-سيظهر الان نافذة Search Criteria Builder قم بتسمية FillBy إلى FillByName ثم اضغط على
Query Builder

http://www.qahtaan.com/works/up/get....mqvw1203030973
أمامنا الان نافذة Query Builder وبما أننا اخترنا أن نقوم بعمل بحث باستخدام Name فيجب علينا أن نذهب إلى الصف Name وبالتحديد الخانة Filter ونقوم بكتابة الصيغة التالية

كود:

LIKE @Name + '%'
http://www.qahtaan.com/works/up/get....opqt1203030974
ثم نقوم بالضغط على Execute Query ستظهر لك نافذة Query Parameter إحداثيات الإستعلام فإذا لم تظهر لك هذة النافذة فهناك خطاء لديك فى الجملة المبنية لذلك أرجوا التركيز جيدا فى هذة النقطة

http://www.qahtaan.com/works/up/get....nqsu1203030974
-قم بتجربة كتابة أحد الأحرف بدلا من Null فى Value ثم Ok ثم انظر إلى الجدول لتجد أنة قام بإحضار كافة الأسماء التى تبداء بالحرف A الذى قمت أنا بتجربتة
http://www.qahtaan.com/works/up/get....glrs1203030974
ثم OK وOk لتجد أنة قد ظهر لك FillByNameToolStrip فى أعلى الفورم قم بتجربة المشروع وذلك ب F5 ثم ضع حرف فى Text Box ثم اضغط على زر Fill By Name لتجد أنة قام باحضار ما تبحث عنة
http://www.qahtaan.com/works/up/get....y4ri1203031134
نعود للفورم الان ونقوم بفتح صفحة الكود ثم حذف هذا السطر


كود:

Me.VendorsTableAdapter.Fill(Me.VendorSearchDataSet.Vendors)
http://www.qahtaan.com/works/up/get....imru1203031134



والفائدة من حذفة هى أن تظهر لك المحتويات فارغة عند فتح المشروع
http://www.qahtaan.com/works/up/get....qsxy1203031134
كما رأينا فإننا قمنا بعمل ربط لقاعدة البيانات المتواجدة على سيرفر وكذلك فورم البحث بدون كتابة أكواد فيجوال بيسيك أو غيرها من اللغات
-عندما نريد العمل مع سيرفر يعيد يعنى خارج الشبكة المحلية فإن الاختلافات ستكون اختلافات بسيطة جدة وهى تتمثل فى طبيعة السيرفر المطلوب الاتصال بة
-هذا المثال يمكن تطبيقة أيضا OffLine وذلك بالموافقة على استيراد قاعدة البيانات إلى داخل المشروع مع إحداث تغييرات بسيطة
-قمنا سابقا بمعرفة كيفية ربط عدد من الجداول داخل نفس المشروع ولكننا لم نقم بعمل إنهاء لة وعلى ذلك سأقوم بشرح مثال شامل أقوم فية بتجميع كل ما تم معرفتة حتى الان وكذلك إنشاء العمليات المساعدة للمشروع مثل لوحات دخول المستخدمين وكذلك إنشاء أسلوب للاتصال من داخل المشروع نفسة
-معلومة مهمة وهى ان نجاح المشروع يعتمد على الربط الصحيح للجداول و User Stored Proceduer كما أشرت فى بداية شرح قواعد البيانات

وبهذا أنتهى درس اليوم و يتبع............

محمد المعمري 15-02-2008 09:05 PM

رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
 
سادسا : أنواع البيانات فى SQL Server2005


1-Int

وهى اختصار Integer والأرقم الصحيحة الممتدة من من 2^31- إلى 2^31-1 بمعنى أنه أحد الأرقام المحصورة بين (-2147483648 إلى 2147483647)
2-BigInt
إذا نظرنا إلىى هذة الكلمة فسنجد أنها مكونة من جزئين وهما Big وتعنى كبير و Int وهى اختصار Integer و هو العدد الصحيح سواء كان سالبا أو كان موجبا إذن BigInt عدد صحيح كبير ولكن هو كبير لأى درجة ؟
هو عدد صحيح ممتد من 2^63- إلى 2^63-1 وبعبارة أخرى الأرقام المحصورة بين (-9223372036854775808 إلى 9223372036854775807)
وهذا الرقم الذى هو BigInt هو أقصى رقم يمكن التعامل معة داخل قاعدة البيانات وينصح فقط باستخدامة إذا كانت الأرقام التى تستخدمها تزيد على 2 مليار
3-Smallint
وهى small صغير وint و هى الأرقام فى المدى من 2^15- إلى 2^15-1 وبعبارة أخرى الأرقام المحصورة بين (-32768 إلى32767)
4-tinyint

و tiny تعنى صغير جدا وint و هى الأرقام فى المدى من (0 إلى255)
5-Binary

هو النظام الثنائى والمقصود بة هنا نظام العدد الثنائى الذى هو 0و1 ولكن فى الفترة الأخيرة تضائل استخدام Binary إلى درجة كبيرة وهو يستخدم عادة لتخزين ملفات الصيغ مثل Pdf أو doc و ملفات الصور وخلاف ذلك ولكن تخزين مثل هذة الأشياء غير مستحب داخل قاعدة البيانات لعدد من الأسباب منها الحجم الكبير الذى يستهلكة والبطء الذى يحدثة داخل وأسباب ومشاكل أخرى تحدث للعناصر المخزنة وكذلك لقاعدة البيانات لذلك عندما قمت بشرح مثال Currency Manager لم أقم بتخزين الصورة داخل قاعدة البيانات ولكننى قمت فقط بتخزين مسار الصورة لتلافى حدوث هذة التعقيدات لأنة إذا كان محتما علينا أننا سنقوم بتخزين الصورة فلماذا نقوم بتخزينها داخل قاعدة البيانات بالذات ونقوم بإجهادها طالما أننا نستطيع تخزينها فى مكان اخر خارج قاعدة البيانات وما ينطبق على Binary ينطبق على الأنواع التالية
6-Image

7-Varbinary

8- (Varbinary(Max

9-Bit

ويعتبر أحد أنواع Binary ولكن هو Bit يعنى 0 أو 1 يعنى إما هذا أو ذاك قيمة واحدة فقط وهو مناسب جدا للقيم التى هى من نوع Yes/No التى هى Boolean وقد تكلمنا عنها سابقا ولكنها تحتاج لتعريف من قبل من مصمم قاعدة البيانات كأن يقوم بوضع
Yes=1 و No=0 ويمكن بنفس الطريقة استخدامة فى التنقل بين شىء مزدوج الخواص مثل On/Off أو +/- وما شابهها ولكنها تحتاج لتعريف هذا الأمر
-Char
وهى اختصار Character وتختصر إلى Char وتنطق شار و المقصود بها نص محدود الطول بمعنى أننا يجب وضع حد أقصى للحروف التى يتم كتابتها من خلال نوع Char وأنواعة هى
10-(char(x

و X هذة عدد الأحرف و إذا وضعنا X=10 فإننا يجب وضع عشرة أحرف إجباريا فماذا لو قمنا بكتابة 3 أحرف فقط فإنة يتم كتابة السبعة أحرف المتبقية فى صورة فراغات أى أن القيمة تصبح إجبارية 10 أحرف
11-(Varchar(x

وهو أكثرها شيوعا واستخداما فى قواعد البيانات و X هى عدد الأحرف وأقصى طول يسمح بة 1024 حرف ويختلف عن (Char(x فى أنة لا يشترط اتمام الرقم X إلى نهايتة بمعنى أنة لو كان هناك (char(10 فلا بد من وضع العشرة حروف فإذا لم تضعها فإنة سيقوم بإكمالها فى صورة فراغات ولكن لو كان هناك مثلا (varchar(50 فإنة لن يقوم بإكمال ذلك ولكنك فى الحقيقة لن تستطيع كتابة سوى 48 حرف فقط والسبب فى ذلك هو أن SQL server يقوم باستخدام 2 بايت bytes2 من الحجم ويستخدمها لتخزين طول النص
12-(Varchar(max

ويسمح بإضافة نص طويل جدا يصل طولة إلى( 2^31-1) حرف يعنى 2147483647 حرف تماما مما يعنى أنة سيستوعب حوالى 2.147.483.647 بايت أى ما يعادل 2 جيجا وهذا النوع من البيانات قد حل مكان Text فى SQL Server 2005 و Text موجودة أيضا فى خيارات أنواع البيانات ولكن لاخر مرة ولن تظهر فى SQL Server 2008
يوجد هناك نوع اخر من البيانات باعتقادى أننا لن نستخدمة كثيرا وهو National Character وهى لمن يستخدمون حروف لغات non-Unicode و الجدير بالذكر أنها تستخدم 2 بايت لكل حرف وهى
13-(nchar(x

14-(nvarchar(x
15-ntext

ومثلها مثل text لن تظهر فى SQL Server بعد الان
16-(nvarchar(max
17-Datetime

و تسمح بالتعامل مع الفترة الزمنية الممتدة من يوم 1 يناير عام 1753 حتى يوم 31 ديسمبر عام 9999 وهى تعطى الزمن بدقة و معدل الخطاء قد يصل إلى 3.35 ميللى ثانية لذلك فإن يفضل وضعها فى وضع تزامن لتصحيح الفارق الزمنى
18- Smalldatetime

وتصلح للزمن مقدرا بالدقائق فى الفترة من ا يناير 1900 حتى 6 يونيو عام 2079
19- Timestamp

وهو زمن غير تلقائى ولا يرتبط بالنوعين السابقين من الأزمنة و هو يصلح للأزمنة الغير دورية وأبرز مثال يمكن ضربة على هذا النوع هو التأقيت Watching
20-(Decimal(P,S

و Decimal تعنى رقم يمكن أن يكون رقم عشرى ولكن ما معنى (P,S)
P=Percision و هو عدد الأرقام التى على اليسار من العلامة العشرية مثلا إذا كنت P=5 فإنة يمكن وضع خمسة أرقام مثل 9999
S=Scale وهو الرقم الذى على يمين العلامة العشرية
لتوضيح ذلك
(Decimal(5,2 يمكن أن يكون رقما بهذة الصورة 44.20 أو 45898.29 .....الخ
وهى فى الوضع الإفتراضى فى SQL Server موجودة بالصورة التالية(Decimal(18,0
21-(Nuemric(P,S

هى نفسها (Decimal(P,S
22-Money

وهو يستخدم لتخزين القيمة فى صورة (Decimal(16,4 والغرض من تخصيصها هو العملة أو النقدية والقيمة قد تكون موجبة أو سالبة ومحصورة بين (-9.22 تريليون و 9.22 تريليون)
23-Smallmoney

وينحصر مابين -215000 و 215000 مائتان وخمسة عشر ألفا لاغير
24- sql_variantونادرا ما تستخدم وهى تشبة varchar
25- uniqueidentifier

ويصلح لتخزين قيمة ID مثل قيمة Guide التى تعلمنا طريقة إنشأها فى الدرس الثانى من قواعد البيانات وهو كما رأينا فى تكوينة Hexdecimal ويتكون من الأرقام 0 و1 و2 ......9 والحروف a وb وc و d وe وf وهو يتكون من 32 حرف عبارة عن حروف من الحروف الستة المذكورة بالاشتراك مع العشرة ارقام المعروفة كما أنه يصلح ايضا لتخزين Autonumber الذى هو الترقيم التلقائى
26- XML

لتخزين البيانات من النوع XML ويمكنة أن يسع حتى 2 جيجا من البيانات
27- Float and Real

ويستخدمان لتخزين القيم التقريبية


الساعة الآن 01:22 AM

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. TranZ By Almuhajir
جميع الحقوق الأدبيه والفكرية محفوظة لشبكة قحطان وعلى من يقتبس من الموقع الأشارة الى المصدر
وجميع المواضيع والمشاركات المطروحه في المجالس لاتمثل على وجه الأساس رأي ووجهة نظر الموقع أو أفراد قبيلة قحطان إنما تمثل وجهة نظر كاتبها .

Copyright ©2003 - 2011, www.qahtaan.com