الرئيسيةلواء الكورةمكتبة الصورس .و .جبحـثالتسجيلدخول

شاطر | 
 

 فجول بيسكككككككككككككككككككككككككك

اذهب الى الأسفل 
كاتب الموضوعرسالة
معاذ العبدالله

avatar

عدد الرسائل : 18
العمر : 27
الموقع : mo3ath
تاريخ التسجيل : 03/09/2008

مُساهمةموضوع: فجول بيسكككككككككككككككككككككككككك   الأربعاء سبتمبر 24, 2008 12:17 pm

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

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

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

الأحداث الناتجة عن الفأرة

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

Sub Command1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

End Sub
وهو هنا يعطيك متغيرات ، كل واحد منها يحمل معلومة معينة ، كما يلي :
المتغير Button :
الأحداث الأربعة السابقة تقع عند ضغط المستخدم بأي زر من أزرار الفأرة الثلاثة ويوضح لك المتغير Button أي زر منها قام المستخدم بضغطه ، وله ثلاثة احتمالات :
المستخدم ضغط الزر الأيسر
المستخدم ضغط الزر الأيمن
المستخدم ضغط الزر الأوسط
ولايمكن للمستخدم أن يضغط أكثر من زر في نفس الوقت . قإذا أردت أن تختبر إن كان المستخدم قد ضغط الزر الأيمن ، فإنك تكتب :
if button = 2 then …………..
فإذا كان المستخدم قد ضغط الزر الأيمن ، سيقوم "فيجول بيسيك" بتنفيذ الأمر التالي لكلمة then
التغير Shift :
يوفر لك معلومات عن حالة المفاتيح الثلاثة Ctrl و Shift و Alt أثناء ضغط زر الفأرة ، كما يلي :
المستخدم ضغط مفتاح shift
المستخدم ضغط مفتاح Ctrl
4 المستخدم ضغط مفتاح Alt
لاحظ أنه يمكن للمستخدم أن يضغط أكثر من مفتاح في نفس الوقت . في هذه الحالة يحتوي المتغير shift على مجموع المفاتيح التي ضغطها . فمثلاً إذا ضغط على مفتاحي ctrl و alt في نفس الوقت ، فإن المتغير shift سيحتوي على مجموعهما هو 6 لذلك إذا أردت أن تختر إن كان المستخدم ضغط مفتاح shift أثناء ضغطه لزر الفأرة ، فإنك تكتب :
if shift = 1 then
أو أردت أن تختبر إن كان قد ضغط مفتاحي alt و shift أثناء ضغطة لزر الفأرة
if shift = 5 then

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

الأحداث الناتجة عن لوحة المفاتيح
هناك ثلاثة أحداث متعلقة بلوحة المفاتيح ، هي :

متى يقع معناه الحدث
عندما يقوم المستخدم بضغط حرف من حروف آسكي فوف لوحة المفاتيح ضغط حرف Keypress
عندما يقوم المستخدم بضغط أي حرف على حرف وقبل أن يحرره أي أثناء عملية الضغط المفتاح أسفل KeyDown
عندما يقوم المستخدم بضغط أي حرف على لوحة المفاتيح ثم يحرره أي بعد عملية الضغط المفتاح ارتفع Keyup

ويستخدم الحدث keypress عندما تريد أن تعرف الحرف الذي ضغطه المستخدم فوق لوحة المفاتيح
مثال :
Sub Form_KeyPress (keyascii As Integer)
Print keyascii
If keyascii = 81 Then
End
End If

End Sub


المتغيرات
المصفوفات
الثوابت

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


ملاحظة : يستخدم امر inputbox$ لطلب معلومة من المستخدم.
شرح السطر السابق هو :
أن "فيجول بيسيك" يتيح للمستخدم أن يدخل اسمه في الخانة الموجودة في أسفل المربع .
وعندما ينتهي المستخدم من إدخال الاسم ، فإن "فيجول بيسيك" يضع هذا الاسم في المتغير username$ . ويبقى هذا المتغير يحمل هذه القيمة حتى تقوم بتغييرها.
ويمكنك استخدام القيمة التي يحملها المتغير كأن تضعها في متغير آخر ، مثل :
clientName$ = UserName$
فهنا سينسخ "فيجول بيسيك" القيمة الموجودة في المتغير username$ ويضعها في المتغير cilentname$ . ويمكن أن تضع هذه القيمة في أداة القائمة مثلاً :
list1.additem username$
ويمكنك تغيير القيمة التي يحملها المتغير بوضع قيمة جديدة داخله ، فيلغي "فيجول بيسيك" القيمة القديمة ويضع محلها القيمة الجديدة . مثلاً :
"عبدالرحمن مصلحusername$ = "
وهذا المتغير يُسمى متغير حرفي string variable لأنه يحتوي على مجموعة حروف . وتوجد كذلك متغيرات عددية وهي تستخدم لحمل الأعداد وليس الحروف . فمثلاً يمكنك أن تسأل المستخدم عن عمره وتضع القيمة التي يدخلها في متغير عددي :
)"أدخل عمرك ، من فضلك"userage = inputbox$ (
ويتميز المتغير العددي بإمكانية إجراء العمليات الحسابية مثل الطرح والضرب والقسمة عليه مثل برنامج الوحدات الذي قمتُ ببرمجته وشرحة
اختيار اسم المتغير
هناك شروط لاختيار اسم المتغير منها :
يجب ألا يزيد اسم عن 40 حرفاً
يجب أن يكون أول حرف منه حرفاً هجائياً
يجب ألا تستخدم كلمة من الكلمات المحجوزة reserved words كأسم للمتغير من الكلمات المحجوزة print و end ولكن يمكن أن تكون جزء من اسم اخر مثل PrintText
أنواع المتغيرات

مداه معناه نوع المتغير
من –32768 إلى 32767 عدد صحيح Integer
من –214748E إلى 21474 عدد صحيح Long
-3.402823 إلى –1.40129
من 1.4012 إلى 3.4028 عدد ذو فاصلة عشرية عائمة Single
-1.7976931 إلى –4.9406
من 4.94065 إلى 1.79769 عدد ذو فاصلة عشرية Double
============ ======= Currency
من 0إلى 65.500 حرف تقريباً مجموعة من الحروف String
حرفي أو عددي بتاع كُـله Variant

الإعلان عن المتغيرات
الإعلان عن المتغير أن تخبر "فيجول بيسيك" عن اسم المتغير ونوعه ، مثل :
Dim UserName As String
فهنا الأمر Dim يخبر "فيجول بيسيك" أننا نريد أن نعلن عن متغير ، وكلمة UserName كمتغير يحمل سلسلة حروف . في هذه الحالة ، يقوم "فيجول بيسيك" بحجز الذاكرة الضرورية لذلك المتغير وتهيئته .
لاحظ أن الإعلان عن المتغير ليس إجباري
الفائدة من الإعلان عن المتغيرات
عدم الإعلان عن المتغير قد يؤدي أحياناً إلى أخطاء خفية في برنامجك .فمثلاً انظر السطرين التاليين :
)"أدخل اسمك من فضلك"username$ = inputbox$ (
print usename$
سيقوم السطر الأول بالتنفيذ ويطلب المستخدم بالاسم ولكن لن يطبع اسم المتغير لإن الكلمة خطا (ناقصة حرف r ) ومع ذلك سوف يقوم"فيجول بيسيك" بتنفيذ البرنامج بدون أي مشاكل !!!
ولحل هذه المسألة ، يمكنك أن تخبر "فيجول بيسيك" أن يعرض رسالة خطا عند ورود أي متغيرات لم يسبق الإعلان عنها . وذلك عن طريق استخدام الأمر :
Option Explicit
ويتم الإعلان عن المتغيرات باستخدام أحد الأوامر التالية :
Dim ,Global ,Static
يجب الإلتزام بنوع المتغير
مثلا :
لا يجوز أن تعلن عن متغير عددي وتضع فيه قيمة حرفية
والعكس صحيح كذلك

مدى المتغيرات وعمرها :
المتغيرات العامة
المتغير العام هو المتغير الذي يمكنك أن تستخدمه من أي مكان في البرنامج ، أي أن مداه يشمل جميع البرنامج بجميع ملفاته ونوافذه .
ويبقى في الذاكرة طوال فترة عمل البرنامج ولا يحذف من الذاكرة إلا بعد انتهاء البرنامج .
ولكن يجب أن تضع الإعلان عن المتغير العام في ملف برمجة وليس في نافذة .
طريقة ادخال المتغيرات التي ترغب في جعلها متغيرات عامة هي
Global UserName As String
بعد هذا الإعلان ستتمكن من استخدام المتغير UserName من أي مكان داخل البرنامج وستجد أنه يحتفظ بقيمته طوال فترة عمل البرنامج .

المصفوفات
المصفوفة Array هي سلسلة من المتغيرات تحمل نفس الاسم ويتم التمييز بين المتغيرات داخل هذه المصفوفة باستخدام رقم المتغير داخلها .
يوفر استخدام المصفوفات وقتاً وجهداً كبيرين ، كما قد يؤدي إلى بساطة وصغر حجم البرنامج . لنفرض مثلاً أنك تريد أن تقرأ أسماء 50 موظفاً من ملف ، وأنك تريد أن تحتفظ بها في الذاكرة لتعديلها أو عرضها أو ترتيبها . فيكف تعمل ذلك ؟ إذا استخدمت متغيرات عادية ، ستضطر إلى الإعلان عن 50 متغيرا ثم تكرر أمر القراءة من الملف لكل واحد من هذه المتغيرات الخمسين ، ثم تضع ماقرأته في المتغير المناسب . وهذه مسألة شاقة بالطبع . كما أن ذلك سيؤدي إلى كبر حجم البرنامج دون داع . والحل المناسب لهذه المسألة هو أن تستخدم مصفوفة مكونة من 50 عنصراً وذلك بكتابة الأمر :
Dim EnpName(50) As String
هنا ، الاسم EmpName هو اسم المصفوفة ، والرقم (50) هو عدد العناصر داخلها ثم كلمة String تحدد نوع المتغيرات التي ستضعها في المصفوفة . كلمة as string اختيارية وإن لم تحددها سيكون نوع المتغيرات هو variant وبالتالي يمكن تخزين أي نوع فيه .
يمكنك قراءة أسماء الموظفين ووضعها في المصفوفة باستخدام تكرار For …Next
بالشكل التالي :
For counter = 0 to 49
Empname(counter) = inputbox$("أدخل اسم الموظف التالي")
Next counter
فهنا نستخدم تكرار for ..next (سوف نشرحها بالتفصيل في المحاضرات التالية)
لنطلب من المستخدم إدخال أسماء الموظفين . هذا التكرار يستمر خمسين مرة من صفر إلى 49 . لاحظ أن العد داخل المصفوفة يبدأ من صفر وليس من 1 . لذلك تبدأ المصفوفة من الرقم صفر وتستمر حتى 49 .
ويمكنك الإشارة إلى أي عنصر داخل المصفوفة بأن تذكر اسم المصفوفة ثم رقم العنصر داخلها .فمثلاً ، لتغير قيمة العنصر العاشر في المصفوفة ، فإنك تكتب :
"الدكتور منصور"empname(9) =
وإذا أردت قراءة القيمة الموجودة في المتغير رقم 20 داخل المصفوفة ووضعها في متغير آخر فإنك تكتب :
curname =empname(19)
لاحظ مرة أخرى أن الوضع الافتراضي للمصفوفات هو أن يبدأ العد داخلها من صفر . فإذا رغبت أن تجعل العد يبدأ العد من 1 ضع الأمر التالي :
option base 1

الثوابت
الثوابت تعني لها قيمة لاتتغير بعكس المتغير
مثلا بدلا من أن تضع قيمة معينة على كل البرنامج ضع ثابت لها في أول البرنامج ثم اكتب البرنامج على اساس الثابت بدلا من القيمة في كل البرنامج
مثال :
لنفرض أن لديك عشرين موظفاً تريد أن تطلب بياناتهم من المستخدم يمكنك أن تكتب عدد الموظفين وهو هنا 30 مباشرة في كل مرة تحتاج إلى ذلك مثل :
for counter = 1 to 30
…………………..
………………….
Next counter
لنفرض أنك كتبت أمراً مثل هذا في ستة أو سبعة مواضع داخل البرنامج ، ثم أردت بعد ذلك أن تغير عدد الموظفين من 30 إلى 60 . فماذا تفعل ؟ في هذه الحالة سوف تضطر إلى أن تبحث عن كل المواضع التي ذكرت فيها الرقم 30 وتغيره إلى 60 وإذا نسيت موضعاً سوف يؤدي ذلك إلى خلل في عمل البرنامج .
وكحل لتلك المسألة ، استخدم ثابتاً constant وضعة في بداية البرنامج أو الإجراء مرة واحدة وتضع فيه العدد الذي ترغب فيه ، مثل :
const NUM_OF_EMPLOYEES =30
وبعد ذلك تقوم في عملية التكرار بعمل التالي :
for counter = 1 to NUM_OF_EMPLOYEES
…………………..
………………….
Next counter
وبذلك يتحقق أمران : الأول أن الثابت NUM_OF_EMPLOYEES أسهل في تذكر معناه من الرقم 30 ، والثاني : انك لو أردت تغيير عدد الموظفين من 30 إلى 60 كما افترضنا من قبل ، فكل ماعليك القيام بة هو تغيير الثابت من القيمة القديمة إلى القيمة الجديدة .
وهناك فائدة أخرى أن "فيجول بيسيك"يستخدم نظاماً خاصا لتحديد درجات الألوان فإذا أردت أن تغير لون أداة إلى الأزرق أثناء تشغيل البرنامج ، فإنك تكتب :
LABEL1.BACKCOLOR = &HFF0000
فإن "فيجول بيسيك" يستخدم الرقم &HFF0000 للأزرق وغيرها من الألوان فكيف يمكنك أن تتذكر كل هذه الأرقام الغير مفهومة ؟
الحل : هو أن تضعها في ثوابت بالطريقة التالية :
const BLACK = &H0&
const RED = &HFF&
وبهذة الطريقة يمكنك أن تغير الألوان بطريقة مفهومة وسهلة الاستخدام
مثال :
LABEL1.BACKCOLOR = RED
مدى الثوابت :
مثل المتغيرات بالضبط فإذا كنت تريد أن تستعمل الثابت في كل النوافذ الموجودة في البرنامج فيجب أن تضع الثابت في ملف برمجة وتسبقه بكلمة Global
مثال :
Global const User_NAME = "ABSOFT2000"
أما إذا كنت تريد أن تستعمله في نافذة واحدة فضعه في داخل نافذة البرمجة الخاصة بتلك النافذة

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

Object  انقر نافذة البرنامج نقرا مزدوجا لكي تفتح لك نافذة البرمجة ثم إذهب إلى  
واضغط السهم سوف ينسدل لك قائمة انقر منها (general)
وبعد ذلك سوف تجد نافذة البرمجة خالية اكتب فيها ما يلي :
اسم الاجراءsub
Sub Getfilename مثل :
ثم اضغط زر إدخال من لوحة المفاتيح يظهر لك مايلي :

Sub getfilename ( )
هنا تكتب الاوامر التي تريدها لهذا الاجراء
End sub
وعندما تريد أن تستدعي الاجراء ماعليك إلا أن تكتب اسمه فقط .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://mo3ath-3mrdiab.yoo7.com
عمرو عزايزة
مشرف
مشرف
avatar

عدد الرسائل : 1019
العمر : 25
الموقع : الاشرفية
تاريخ التسجيل : 25/08/2008

مُساهمةموضوع: رد: فجول بيسكككككككككككككككككككككككككك   الأربعاء سبتمبر 24, 2008 6:35 pm

شكرا الك على هالمعلومات
الله يعطيك العافية

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://www.korahdir.ahlamuntada.com
عاشق الامتياز
مشرف
مشرف
avatar

عدد الرسائل : 421
العمر : 26
الموقع : الأشرفيه
تاريخ التسجيل : 17/04/2008

مُساهمةموضوع: رد: فجول بيسكككككككككككككككككككككككككك   الإثنين أكتوبر 06, 2008 3:16 pm

سلمت يداك يا معاذ على الدروس التي تخص الفيجول بيسك
دمت في رعاية الله
Smile thanks

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://www.korahdir.ahlamuntada.com
اردنية وافتخر

avatar

عدد الرسائل : 22
العمر : 26
تاريخ التسجيل : 23/09/2008

مُساهمةموضوع: رد: فجول بيسكككككككككككككككككككككككككك   الإثنين أكتوبر 06, 2008 5:21 pm

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

avatar

عدد الرسائل : 22
العمر : 26
تاريخ التسجيل : 23/09/2008

مُساهمةموضوع: رد: فجول بيسكككككككككككككككككككككككككك   الإثنين أكتوبر 06, 2008 5:23 pm

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

avatar

عدد الرسائل : 155
العمر : 26
الموقع : 3omar
تاريخ التسجيل : 31/10/2008

مُساهمةموضوع: رد: فجول بيسكككككككككككككككككككككككككك   الجمعة ديسمبر 19, 2008 8:19 am

مشكوووووووووور يا ابن عمي الله يعطيك الف عافيه
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://www.waelkfore.com
الاردن احلى
نجمة المنتدى
نجمة المنتدى
avatar

عدد الرسائل : 342
العمر : 23
الموقع : ببلاد الله الواسعه
تاريخ التسجيل : 18/11/2008

مُساهمةموضوع: رد: فجول بيسكككككككككككككككككككككككككك   الجمعة ديسمبر 19, 2008 7:46 pm

شكرا على المعلومات القيمه الله يعطيك العافيه
بوركت لك جهودك ...
تقب مروري

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

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
 :: مواد تعليمية-
انتقل الى: