Make your own free website on Tripod.com

دروس متوسطة

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

المصفوفة هي قيم مخزنة في البرنامج يتم الإضافة إليها وعرضها.

التصريح عن المتغير يتم كما يلي:

1 - إما في الحدث

Dim a, b As Integer

 a و b   متحولات عددية

2- في قسم التصريحات General:

'تعريف متحول عددي
Dim no1 As Integer
'تعريف مصفوفة عددية سعتها 10 عناصر
Dim list(10) As Integer
'تعريف مصفوفة مؤلفة من 10 عناصر عرض و10 إرتفاع أي 100 عنصر
Dim matrix(10, 10) As Integer
'تعريف متغير نصي
Dim name1 As String
'تعريف متغير نصي بطول 50 حرف
Dim name1 As String * 50
'تعريف مصفوفة نصية تتكون من 10 عناصر
Dim list1(10) As String
'تعريف مصفوفة نصية تتألف من 10 عناصر بطول 50 حرف
Dim list1(10) As String * 50
'تعريف متغير للقيم نعم ولا
Dim a As Boolean

التصريح في وحدة نمطية Module:

 

'تعريف متغير عددي لكافة نوافذ البرنامج
Global no1 As Integer

'تعريف عدة متغيرات في مجموعة واحدة
Type user
user_no As String * 70
user_name As String * 30
user_mark As Integer
End Type

 

 

الأن نأتي إلى كيفية إستخدام المتغيرات

طريقة الإضافة إلى المتغير هي

مثلاً لو صرحنا عن متحول عددي a  نكتب كما يلي:   

 a=90

أوعن طريق تعليمة الإسناد Let وتكتب كما يلي

Let a=90

أو يمكن إسناد قيمة عملية رياضية بين عددين مثل

Let a=5*6

لكي تظهر قيمة المتحول على الفورم أكتب التعليمة Print ثم إسم المتحول

Print a

ويمكنك عرض قيمة المتحول في صندوق نص Textbox

Text1=a

والأن سوف نعمل مثال بسيط للمتحولات ألة حاسبة:

أضف إلى الفورم أربع أزرار أمر جمع وطرح وضرب وقسمة

وأضف ثلاث اداة النص Text ولتكن أسمائها Text1 و Text2 وText3

ضع التصريح التالي في قسم General

Dim a, b As Integer

ثم في الأزرار ضع الأكواد

On Error Resume Next
a = Text1.Text
b = Text2.Text
Text3.Text = a + b

الكود السابق للجمع فقط أبدل الإشارة + بالإشارت الإخرى

 

يجب ان تشمل المصفوفة على:

 أ‌- اسم المصفوفة: الاسم الذي ستستعمله للمصفوفة في البرنامج

 ب‌- نوع البيانات : يحدد نوع البيانات التي ستخزنها المصفوفة

 ج- عدد الأبعاد : لمعظم المصفوفات بعد واحد (قائمة قيم) أو بعدين (جدول قيم)

 د- عدد العناصر : يحدد عدد عناصر المصفوفة وبشكل افتراضي تكون أول خانة في المصفوفة برقم فهرس 0 (صفر) كما هو الحال مع مصفوفات التحكم

تسمى المصفوفات التي تحتوي على عدد عناصر محدد بمصفوفات ثابتة الحجم Fixed Size أما المصفوفات التي تحتوي على عدد عناصر متغير فهي مصفوفات يمكن توسيعها خلال تشغيل البرنامج ويطلق عليها اسم  Dynamic  مصفوفات ديناميكية تصريح مصفوفة ثابتة
التركيب النحوي الأساسي لتصريح مصفوفة ثابتة الحجم عامة هو (Public Arry Name(Dim iliements,Dim2 Elemets,... تغيير رقم البداية في المصفوفة
تغير جملة Option Base رقم أول عنصر في المصفوفة بجعله أي رقم بدلا من الرقم صفر الافتراضي فإذا أردت زيادة الوضوح في البرنامج بجعل رقم أول عنصر في المصفوفة هو العنصر رقم 1 بدلا من رقم 0 يمكنك وضع جملة Option Base التالية في وحدة نمطية قياسية Option Base 1 تربط هذه الجملة العنصر الأول (الأساس Base ) لكل المصفوفات في البرنامج بالرقم 1 مثال استخدام المصفوفات
 

بعد تجهيزك للفورم أضف إليه زرين أمر Command Button

غير خاصية Caption لكل من الأزرار كما يلي:

Command1   =    إدخال

Command2   =    إظهار النتيجة

ولا تنسى تغيير خاصية الإتجاه للفورم Right To Left

 

وأضف وحدة نمطية Module

أكتب السطرين التاليين في الوحة النمطية

Option Base 1
Public Degs(9) As Variant

أضف الكود التالي إلى زر تخزين القيم

cls: prompt$ = "إدخال قيمة"
For i% = 1 To 3
Title$ = "القيمة" & i%
Degs(i%) = InputBox(prompt$, Title$)
Next i%

 

تمحو جملة Cls في أعلى الأجراء الحدثي إخراج الجمل Print السابقة على النموذج ليصبح بإمكانك إدخال اكثر من مجموعة قيم 

 

ثم أضف الكود التالي إلى الزر الثاني

cls: Print "القيم": Print "-----------"
For i% = 1 To 3
Print "المادة" & i% & "قيمة" & Degs(i%): Print "-----------"

total! = total! + Degs(i%): Next i%
Print "مجموع القيم" & total!

 


 

التعامل مع الحافظة

سوف تعرف كيف تنسخ النص وتلصق ماهو منسوخ من أي برنامج أخر وكذلك الصور.

فلو إلتقطت صورة عن طريق مفتاح Print Screen SysRa فإنك تستطيع لصق الصورة في برنامجك وحفظها .

طريقة العمل ليست صعبة . بعد تجهيز الفورم أضف العناصر التالية:

 

أداة النصوص Text1

5 أزرار Command غير Caption كما في الصورة

أداتين عرض الصور Picture1   و  Picture2

 

ناتي إلى كتابة الشيفرة الخاصة بالعمل:

 

في الزر مسح الحافظة أضف السطر التالي

Clipboard.Clear

في الزر نسخ النص أضف السطر التالي:

Clipboard.SetText Text1.Text

في الزر لصق النص أضف السطر التالي:

Text1.Text = Clipboard.GetText

هذه الأسطر السابقة تقوم بنسخ كافة النص ولصقه

أما إذا أردت نسخ جزء محدد فإستبدل     Text1.text       بالكود     Text1.SelText

نأتي الأن إلى نسخ ولصق الصور :

نفس الطريقة السابقة ولكن إستبدل Text1.text بإسم أداة الصور Picture1  أو Picture1

في الزر نسخ الصورة أضف السطر التالي:

Clipboard.SetData Picture1.Picture

في الزر لصق الصورة أضف الكود التالي :

Picture2.Picture = Clipboard.GetData
 

 


 

محرر القوائم

إن أبسط برنامج تريد صنعه سوف يحتاج بالتأكيد إلى قوائم منسدلة مثلاً : ملف . تحرير . تعليمات .....

وهذا الدرس يساعدك على كيفية إنشاء القوائم:

لفتح محرر القوائم أنقر فوق الزر في شريط الأدوات  أو من قائمة Tools إختر Menu Edior فيظهر لك محرر القوائم

 

 

أكتب العنوان الذي سوف يظهر في Caption مثلاً (العنوان )

ثم أدخل التسمية الخاصة للقائمة في حقل Name والتي سوف تتعامل معه الفيجوال بيسك

ثم إضغط Next فتكون قد أنشأت القائمة الرئيسية

لإضافة عناصر للقائمة أكتب عنوان العنصر في  Caption  وإسمه الداخلي في Name وأنقر فوق الزر

لإضافة فاصل بين القوائم في مكان العنوان Caption أكتب إشارة الطرح (-) وأدخل أي إسم داخلي في Name

لإضافة قائمة فرعية اضغط Next لإضافة عنصر أدخل المعطيات Caption و Name ثم أنقر فوق الزر

ثم اضغط Ok للحفظ والإغلاق

وقت التشغيل هكذا سوف تظهر القائمة التي أنشأتها

ربما سوف تتسائل كيف تظهر القائمة عند النقر بالزر الأيمن للماوس ! هذا بسيط :

فقط في مكان الحدث عند النقر بالزر الأيمن فوق الفورم مثلاً عل فرض أن الفورم إسمه Form1

إختر الحدث Mouse Down لل Form1 وأكتب السطر التالي

If Button = 2 Then
Form1.PopupMenu
menu1
End If

طبعاً Menu1 هي إسم القائمة الرئيسة والتي سوف تظهر عند النقر بالزر الأيمن . ويمكنك تغيير خاصية Visible في محرر القوائم لإخفاء القائمة الرئيسية

 


 

الرسائل Msgbox

MsgBox "نص الرسالة", vbDefaultButton1, "العنوان"

الأزرق نوعها

الشكل الكامل (مع ربط بالتعليمات):

MsgBox "نص الرسالة", vbMsgBoxHelpButton, "العنوان", "c:\windows\help\windows.chm", 0

 

أمثلة عن الرسائل

 

الشكل العام

التنفيذ

 

 

Msgbox"رسالتك هنا"

 
MsgBox "حدث خطأ", vbCritical, "خطأ"
 
 
MsgBox "رسالتك هنا", vbExclamation, "العنوان"  
MsgBox "رسالتك هنا", vbInformation, "العنوان"  
MsgBox "رسالتك هنا", vbMsgBoxHelpButton, "العنوان", "C:\WINDOWS\HELP\calc.CHM", 0
 
 
MsgBox "رسالتك هنا ", vbOKCancel, "العنوان"  
MsgBox "رسالتك هنا ", vbYesNo + vbQuestion, "العنوان"
 

 

MsgBox "رسالتك هنا ", vbSystemModal,
 "العنوان"
MsgBox "رسالتك هنا ", vbAbortRetryIgnore, "العنوان"
 
 
 

 

كيفية وضع عدة أسطر تحت بعضها في الرسالة:

 

Dim a As String
a = "السطر الأول" & vbCrLf
a = a & "السطر الثاني" & vbCrLf
a = a & "السطر الثالث" 
MsgBox a, vbMsgBoxRight + vbInformation, "العنوان"
'ويمكنك أن تضيف عدد السطور التي تريد بنفس الطريق

 ' "&vbCrlf" السطر الأخير بدون

 

طريقة أخرى لكتابة الرسالة بعدة سطور

 

Dim a As String
a = "السطر الأول" & vbCrLf & "السطر الثاني" & vbCrLf & "السطر الثالث"
MsgBox a, vbMsgBoxRight + vbInformation, "العنوان"

 

 


 

Common Dialog

ربما لم تسمع بهذه الأداة سابقاً. ولاكن سوف تعرفها:

عندما تفتح أي برنامج فإنك سوف تحفظ عملك في النهاية ! ماذا يظهر لك عندما تختار "حفظ" ؟

وإذ فتحت أي برنامج وتريد فتح ملف فسوف يظهر لك أيضا صندوق الحوار الخاص بالفتح وهو نفس صندوق الحفظ!

هذا الصندوق يسمى Common Dialog و هذه الأداة تستخدم في معظم البرامج المبرمجة بواسطة الفيجوال بيسك.

 

هناك طريقتان لإستخدام هذه الأداة :

الطريقة بإستخدام أداة جاهزة:    Microsoft Common Dialog Control

الطريقة الثانية بإستخدام إجراءات API   وهذه عملية صعبة سوف نتحدث عنها في الدروس المتقدمة.

لذلك سيكون درسنا بإستخدام الأداة :   Microsoft Common Dialog Control .  طبعاً تعرف كيف تضعها على الفورم

كليك يمين فوق صندوق الأدوات إختر Components  ثم تجد الأداة  Microsoft Common Dialog Control 6,0 حددها وأنقر Apply

سوف تظهر الأيقونة على صندوق الأدوات . ضعها على الفورم . سوف يكون إسم الأداة CommonDialog1

ضع على الفورم الأداة Picture1  وزر Command1

ضع الكود التالي في الزر:

CommonDialog1.DialogTitle = "فتح ملف"
CommonDialog1.Filter = "Gif صور|*.gif|JPG صور|*.jpg|Bmp صور|*.bmp|كافة الملفات|*.*"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then Exit Sub
Picture1.Picture = LoadPicture(CommonDialog1.FileName)

شرح الكود:

السطر الأول : تحديد العنوان الذي سوف يظهر في أعلى الصندوق

السطر الثاني : تحديد الملفات التي سوف يعرضها الصندوق

السطر الثالث : إظهار الصندوق

السطر الرابع : إذا لم يتم تحديد ملف ألغي الحدث

السطر الخامس: عرض الصورة التي قمت بتحديدها في الأداة PIcture1

 

الأن لنأخذ مثال عن استعمال ألوان CommonDialog:

نفس الأدوات السابقة أضف زر Command2  وأكتب الكود التالي:

CommonDialog1.ShowColor
If CommonDialog1.Color = 0 Then Exit Sub
Picture1.BackColor = CommonDialog1.Color

شرح الكود :

السطر الأول : إظهار ألوان الكمون دايلوك

السطر الثاني : إذا لم يتم تحديد لون ألغي الحدث

السطر الثالث : تلوين مربع الصورة باللون الذي تم تحديده بالكمون دايلوك

سوف نتحدث الأن عن عملية فتح وحفظ مستند نص:

جهز الفورم بالأدوات التالية:

زرين أمر :   فتح    و   حفظ

أداة عرض النص Label1

أداة الكتابة Text1 ولاتنسى تبديل الخصائص MultiLine    و   ScrollBars

وأهم شيىء الأداة CommonDialog

الشيفرة:

أنقر دبل كليك على زر الفتح وأكتب الكود التالي:

Dim file As String
CommonDialog1.Filter = "ملفات النصوص|*.txt"
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1
Input #1, file
Close
Text1.Text = file

السطر الأول :  التصريح عن متحول نصي

السطر الثاني :  تحديد الملفات التي سيعرضها الكمون دايلوك

السطر الثالث :  إظهار اللكمون دايلوك

السطر الرابع   والخامس والسادس فتح المستند كمتحول

السطر السابع : عرض مسار الملف في Label1

السطر الأخير عرض النص في أداة الكتابة Text

نأتي إلى الحفظ :

ضع الكود التالي في زر الحفظ:

Dim a As String
a = Text1
CommonDialog1.Filter = "Text File|*.txt"
CommonDialog1.FileName = a
CommonDialog1.ShowSave
 

السطر الأول :  التصريح عن متحول نصي  (a)

السطر الثاني إسناد النص المكتوب إلى المتحول  a

السطر الثالث: تحديد قيمة الكمون دايلوك وهو المتحول a

السطر الرابع عرض مربع الحفظ.


التعامل مع الأخطاء

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

فدرسنا اليوم هو للتصريح عن الخطأ وتجاهله :

التعليمة القياسية لتجاهل الأخطاء هي

On Error Resume Next

تكتب قبل الحدث وتقوم بإلغاء الحدث عند وقوع خطأ

 

وهناك طريقة أخرى وهي عمل حدث كرسالة مثلاً عند وقوع الخطأ

أولا عليك التصريح عن الخطأ كمايلي

On Error Goto R

(R) هي اسم الخطأ يمكنك تغييره لما تريد

بعد ذلك أكتب الحدث .... مثلاً     Form2.Show      اذا لم يكن الفورم2 موجودا ً سوف يتم اغلاق البرنامج

 فعليك أن تكتب التعليمة بالشكل التالي

On Error GoTo R
Form2.Show
Exit Sub
R:
MsgBox "حدث خطأ في البرنامج", vbCritical, "غير موجود"
 

في السطر الأول التصريح عن الخطاُ

في السطر الثاني الحدث الأساسي

في السطرالرابع والخامس يتم تحديد فعل المتحول 

يمكنك تحديد أي حدث للمتحول بدلاً من الرسالة أو يمكنك أن تكتب السطر التالي :

   MsgBox Err.Description

أي أن الرسالة ستكون من أصل الخطأ
 

إليك مثالاً مفيداً للتصريح عن الخطأ

اصنع Form أضف اليه أداة Drive1 "محركات الأقراص"  وأداة Dir1 "صندوق المجلدات "

أنقر فوق Drive1 نقرتين وأضف الأسطر التالية:

On Error GoTo error1
Dir1.Path = Drive1.Drive
Exit Sub
error1:
MsgBox "الرجاء إدخال قرص في محرك الأقراص هذا", vbCritical, "خطأ"

السطر الأول التصريح عن الخطأ

السطر الثاني الحدث الأساسي "عرض المجلدات داخل محرك الأقراص المحدد"

الأسطر الأخيرة عمل المتحول وهو عرض رسالة خطأ

ويمكنك الإستغناء عن الرسالة السابقة بالرسالة الأساسية للخطأ بالتعليمة التالية:

MsgBox Err.Description

نهاية الدرس

أعلى الصفحة