منتديات ميغ 33 السورية
درس فيجوال بيسك الرابع Join-s10
منتديات ميغ 33 السورية
درس فيجوال بيسك الرابع Join-s10
منتديات ميغ 33 السورية
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


برامج هكر ميغ33,برامج سرقة نكات ميغ33,أدوات برنامج mig33 للكمبيوتر,برامج فلود وتدمير رومات ميغ33,برامج نوكيا جيل ثاني -جيل ثالث -جيل خامس,برامج جوال,برامج موبايل,برامج سوني ايركسون,كراكات.سيريالات.مولدات مفاتيح.باتشات,برامج هكر النمبز,كودات
 
الرئيسيةالرئيسيةأحدث الصورالتسجيلدخول

 

 درس فيجوال بيسك الرابع

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


مقيم في : سورية
مـهنـتي : جامعي
مزاجي : افكر
السمك عـدد المشاركات : 256
مـعـدل النــشـاط : 543
عـدد التقييمات : 46
العمر : 31
mig ID : free.2010


درس فيجوال بيسك الرابع Empty
مُساهمةموضوع: درس فيجوال بيسك الرابع   درس فيجوال بيسك الرابع Emptyالأربعاء نوفمبر 23, 2011 3:18 pm

محتويات الدرس الرابع :

1. ما هو الحدث ؟

2. كيف تستجيب للحدث ؟

3. نافذة البرمجة

4. الأحداث المشتركة

1. المتغيرات والمصفوفات والإجراءات
ما هو الحدث ؟

الحدث 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 أي زر منها قام المستخدم بضغطه ، وله ثلاثة احتمالات :

1. المستخدم ضغط الزر الأيسر

2. المستخدم ضغط الزر الأيمن

3. المستخدم ضغط الزر الأوسط

ولايمكن للمستخدم أن يضغط أكثر من زر في نفس الوقت . قإذا أردت أن تختبر إن كان المستخدم قد ضغط الزر الأيمن ، فإنك تكتب :

if button = 2 then …………..

فإذا كان المستخدم قد ضغط الزر الأيمن ، سيقوم "فيجول بيسيك" بتنفيذ الأمر التالي لكلمة then

التغير Shift :

يوفر لك معلومات عن حالة المفاتيح الثلاثة Ctrl و Shift و Alt أثناء ضغط زر الفأرة ، كما يلي :

1. المستخدم ضغط مفتاح shift

2. المستخدم ضغط مفتاح 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



البرنامج الأول

1. المتغيرات

2. المصفوفات

3. الثوابت


المتغيرات

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

)"أدخل اسمك من فضلك"UserName$ = InputBox$ (

سيعرض "فيجول بيسيك" مربع حوار التالي :





ملاحظة : يستخدم امر inputbox$ لطلب معلومة من المستخدم.

شرح السطر السابق هو :

أن "فيجول بيسيك" يتيح للمستخدم أن يدخل اسمه في الخانة الموجودة في أسفل المربع .

وعندما ينتهي المستخدم من إدخال الاسم ، فإن "فيجول بيسيك" يضع هذا الاسم في المتغير username$ . ويبقى هذا المتغير يحمل هذه القيمة حتى تقوم بتغييرها.

ويمكنك استخدام القيمة التي يحملها المتغير كأن تضعها في متغير آخر ، مثل :

clientName$ = UserName$

فهنا سينسخ "فيجول بيسيك" القيمة الموجودة في المتغير username$ ويضعها في المتغير cilentname$ . ويمكن أن تضع هذه القيمة في أداة القائمة مثلاً :

list1.additem username$

ويمكنك تغيير القيمة التي يحملها المتغير بوضع قيمة جديدة داخله ، فيلغي "فيجول بيسيك" القيمة القديمة ويضع محلها القيمة الجديدة . مثلاً :

"عبدالرحمن مصلحusername$ = "

وهذا المتغير يُسمى متغير حرفي string variable لأنه يحتوي على مجموعة حروف . وتوجد كذلك متغيرات عددية وهي تستخدم لحمل الأعداد وليس الحروف . فمثلاً يمكنك أن تسأل المستخدم عن عمره وتضع القيمة التي يدخلها في متغير عددي :

)"أدخل عمرك ، من فضلك"userage = inputbox$ (

ويتميز المتغير العددي بإمكانية إجراء العمليات الحسابية مثل الطرح والضرب والقسمة عليه مثل برنامج الوحدات الذي قمتُ ببرمجته وشرحة
اختيار اسم المتغير

هناك شروط لاختيار اسم المتغير منها :

1. يجب ألا يزيد اسم عن 40 حرفاً

2. يجب أن يكون أول حرف منه حرفاً هجائياً

3. يجب ألا تستخدم كلمة من الكلمات المحجوزة reserved words كأسم للمتغير من الكلمات المحجوزة print و end ولكن يمكن أن تكون جزء من اسم اخر مثل PrintText
أنواع المتغيرات

نوع المتغير


معناه


مداه

Integer


عدد صحيح


من –32768 إلى 32767

Long


عدد صحيح


من –214748E إلى 21474

Single


عدد ذو فاصلة عشرية عائمة


-3.402823 إلى –1.40129

من 1.4012 إلى 3.4028

Double


عدد ذو فاصلة عشرية


-1.7976931 إلى –4.9406

من 4.94065 إلى 1.79769

Currency


=======


============

String


مجموعة من الحروف


من 0إلى 65.500 حرف تقريباً

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

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

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات ميغ 33 السورية :: القسم التكنلوجي والتقني :: قسم مبـرمجين لغات البـرمجة كافة-
انتقل الى: