Ala2 VB

دورة مبسطة في أساسيات لغة Visual Basic 6

30 ردود في هذا الموضوع

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

السلام عليكم ورحمة الله تعالى وبركاته ...

إن شاء الله تعالى سأضع مجموعة دروس في لغة VB وستكون داخل هذا الموضوع

وأرجو ممن لديه سؤال أو ملحوظة خاصة بمضمون درس ما فقط , أن يكتبه هنا

وأرجو حذف أي أسئلة لا تتعلق بالموضوع

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

وما معنى كلمة دالة وإجراء ... إلخ , ولكن سأشرح أساسيات كل جزء , مثل أساسيات الانترنت , أساسيات التعامل مع الملفات وغيره ...

و سأحاول وضع أمثلة لكل درس, إن أمكن .

-2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الأول : الجمل الشرطية .

جمل IF : وهي أشهر التراكيب الخاصة بالشرط وأكثرها استعمالاً , وتوجد عدة أشكال لهذا التركيب كلها تبدأ بكلمة IF وتنتهي بـ End If

الشكل الأول : If … Then … , وهو يستعمل للتحقق من شرط وتنفيذ أمر واحد غالباً , ويكون كالتالي :

If Condition Then Command

مثلا :

If A > 5 Then Beep

ولكن , يمكن ان تجعله ينفذ أكثر من أمر باستعمال إشارة النقطتين الرأسيتين ( : ) , مثلا :

If A > 5 Then Beep : Msgbox "Hi !"

الشكل الثاني : If … Then … End If , ويستعمل لتنفيذ أكثر من أمر , كما أنه يحافظ على تنسيق الكود , ويكون كالتالي :

If Condition Then

Command1

Command2

Command…

End if

مثلاً :

If A > 5 Then

Beep

Msgbox "Hi !"

X = 7

End If

الشكل الثالث : If … Then … Else … End If , ويستعمل للتحقق من شرط وتنفيذ أمر إذا حصل الشرط وآخر إن لم يحصل , ويكون كالتالي :

If Condition

Command…

Else

Command…

End If

مثلاً :

If A > 5 Then

Beep

Msgbox "Hi !"

X = 7

Else

X = 0

End If

في هذا الكود , إن كان الشرط صحيحا ستنفذ الأوامر الثلاثة الأولى , وإن لم يكن صحيحاً (A <= 5) سيتم تنفيذ ما بعد كلمة Else

الشكل الرابع : If … Then … ElseIf … Else … End If , وهو أكثر الأشكال عموما ودقة لأنه يمكنك من معالجة أغلب الحالات , ويكون كالتالي :

If A > 5 Then

Beep

Msgbox "Hi !"

X = 7

ElseIf A = 5 Then

X = 5

Else

X = 0

End If

هنا تلاحظ اننا تحققنا من ثلاثة شروط , (A > 5) و (A = 5) و Else التي تعني انه تحقق شرط غير المذكور (A > 5 مثلاً)

هناك نوع آخر من جمل IF ولكنه يختلف قليلاً , وهو IIF , ويكون كالتالي :

Value = IIf(Condition, TValue, FValue)

حيث أن :

Value : هو متغير أو ثابت ... إلخ لحفظ القيمة التي تعود بها الدالة

Condition : الشرط

TValue : القيمة التي تعيدها الدالة إن كان الشرط صحيحا

FValue : القيمة التي تعيدها الدالة إن كان الشرط خاطئاً

مثلاً :

Text1.Text = IIf(Text1.Text = "0", "t", "f")

هنا ستكون قيمة Text1 النصية هي "T" إن تحقق الشرط (Text1.text = "0") , وستكون "F" إن كان خاطاً

تركيب Select Case : الفائدة من هذا التركيب هي انه يعالج الكثير من الحالات , ويكون كالتالي :

Select Case X

Case 1

Command1

Case 2

Command 2

Case 3

Command 3

Case …

Command …

End Select

ويمكن استعمال ( :) ليصبح كالتالي :

Select Case X

Case 1 : Command 1

Case 2 : Command 2

Case 3 : Command 3

Case … : Command …

End Select

حيث X هو مثلا متغير أو ثابت أو TextBox.Text ...

مثلاً :

Select Case i

Case 5 : Msgbox "i = 5"

Case 10 : Msgbox "i = 10"

Case 50 : Msgbox "i = 50"

End Select

هذا التركيب سيتحقق من قيمة المتغير i ويعرض رسالة بهذه القيمة

لكن هناك مشكلة ... ماذا لو أردت التحقق إن كان i أكبر أو أصغر من عدد ما ؟

لن يصلح أن اكتب :

Select Case i

Case >5 : msgobx "Larger Than 5"

Case <5 : msgbox "Smaller Than 5"

End Select

الحل هنا : هو باستخدام كلمة IS , فيصبح الكود كالتالي :

Select Case i

Case IS > 5 : msgbox "Larger Than 5"

Case IS < 5 : msgbox "Smaller Than 5"

End Select

ملحوظة : هناك كلمات محجوزة تسمح لك بالخروج من الإجراء أو الدالة , وتوضع في الشروط غالبا , وهي Exit Sub في الإجراءات , و Exit Function في الدوال

مثلاً :

  If A <> 5 Then

Msgbox "A <> 5"

Else

Exit Sub

End If

وهنا سيخرج من الإجراء إن كان A = 5

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

وهذه بعض أمثلة على التعشيش :

If A = 5 Then

If B = 6 Then

If C = 10 Then

Msgbox "Hi !"

Else

Msgbox "No Hi !!!"

End If

End If

End IF

في الكود السابق سيتم التحقق من أن (A = 5) فإن كان كذلك فسيتحقق إن كان (B = 6) فإن كان صحيحا فسيتحقق إن كان C = 10 ويعرض الرسالة الأولى , وإن كان (C <> 10) فإنه سيعرض الرسالة الثانية

Select Case X

Case 5

If A = 6 Then

If B = 23 Then

Msgbox "Hi again !"

Else

Msgbox "No Hi !"

End If

Case 20

If A = 14 Then

Msgbox "Hello …. And Hi !"

Else

Msgbox "……"

End If

End Select

أرجو أن يكون الدرس مفيدا , وأن ينال إعجابكم

تم تعديل بواسطه Ala2 VB
3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله كل خير اخي الكريم .. تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخ محمد , أرجو استعمال زر الشكر حفاظاً على ترتيب الموضوع

----------------------------------------------------------

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الثاني : تركيب With .

تركيب With ... End With هو تركيب بسيط جدا يفيد في اختصار الكود عن طريق تقليل كتابة أحد الكائنات المستخدمة بكثرة داخل الكود

ويكون كالتالي :

With Object
.Property1 = Exp
.Property2 = Exp
.Property... = Exp
End With

مثلاً , انا كتبت الكود التالي , لكائن اسمه TxtBoxForDatabase

TxtBoxForDatabase.Text = "DB TxtBox"
TxtBoxForDatabase.Enabled = True
TxtBoxForDatabase.Visible = True
TxtBoxForDatabase.FontBold = True
TxtBoxForDatabase.FontName = "Arial"
TxtBoxForDatabase.Alignment = 3

بعد إدخال تركيب With يصبح :

With TxtBoxForDatabase
.Text = "DB TxtBox"
.Enabled = True
.Visible = True
.FontBold = True
.FontName = "Arial"
.Alignment = 3
End With

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله كل خير على الدروس وجعلها في ميزان حسناتك والله أنا ما كنت أعرف الـ With شكرا لك وأتمنى متابعة الدروس

شكرا لك مجددا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الثالث : الجمل التكرارية .

أحيناً نريد تنفيذ الأمر أكثر من مرة في نفس الوقت , كتعبئة عناصر مربع قائمة بالأرقام من 1 إلى 1000 , فأنت لست مضطرا إلى إضافة الألف رقم بنفسك , وإنما يمكنك استعمال الجمل التكرارية لتنفيذ الأمر بسرعة فائقة .

هنا عدة أنواع من الجمل التكرارية , أهمها :

تركيب For…To…Next : ويستخدم لتكرار أمر ما أكثر من مرة , بتعيين قيمة البداية والنهاية (ومقدار العد إن أردت) , ويكون بالشكل التالي :

For X = start To end [Step num]
Command…
Next X

نشرح التركيب السابق :

For , To , Next : كلمات محجوزة , الأولى لبدء التركيب والثانية لربط قيمة البداية بقيمة النهاية والأخيرة لإنهاء التركيب

X : متغير توضع فيه قيمة الدوارة , أي أنه إن كانت الدوارة في الدورة 5 , ستكون قيمة X = 5

Start : قيمة البداية

End : قيمة النهاية

Step num : هذا الجزء يحدد مقدار العد حيث step كلمة محجوزة و num هو مقدار العد, أي هل يزيد قيمة X في كل مرة بمقدار واحد , اثنين , ثلاثة , عشرة ... إلخ , وقد وضعتهما بين [] لأنهما غير ضروريان ويتم تعيينهما افتراضياً على 1 .

مثلاً :

For X = 1 To 10
Msgbox X
Next X

هذا الأمر سيعرض 10 رسائل تحتوي على قيمة x

ملحوظة : هناك جملة تستخدم للخروج من دوارة (أو تركيب) For , وهي Exit For ,, الفائدة منها هي عدم الحصول على دوارات غير منتهية مما يؤدي إلى الخروج عن مسار البرنامج.

مثلاً :

For x = 1 To Val(text1.text)
Msgbox x
Next x

هذا الكود يقوم بعرض رسالة فيها قيمة x بدءاً من 1 إلى القيمة الرقمية (Val) في مربع النص , حيث Val هي دالة تحول النص إلى رقم , فمثلاً "1234" نوعها نصي , تحول إلى 1234 (سأشرحه التفصيل إن شاء الله تعالى في الدرس القادم)

حسناً , ماذا لو أن المستخدم كتب 1000000000 في مربع النص ؟!

سيعرض البرنامج 1000000000 رسالة مما يؤدي إلى تعطيل المستخدم

في هذه الحالة يمكن وضع جملة للتحقق من القيمة والخروج إن كانت كبيرة :

For x = 1 To Val(text1.text)
If x > 100 Then
Exit For
End If
Next x

أيضاً يمكنك تقييد الدوارة بشكل آخر , مثلاً :

For x = 1 To Val(text1.text)
If x < 100 Then goto 7
Msgbox x

7 Next x

سيعرض البرنامج رسالة فيها رقم 100 مباشرة , وهذا لأننا شرطنا أنه يجب أن يكون x أصغر من 100 حتى ننتقل إلى ننتقل إلى الدورة التالية , وبالتالي فإن البرنامج أكيد سينتقل إلى الدورة التالية مباشرة ويزيد قيمة x , إلى أن يكون X = 100 , أي أننا في الدورة 100 وعندها سيعرض الرسالة

والأمر GoTo هنا يقوم باستدعاء جزء رقم 7 , والذي يحتوي على أمر الإنتقال إلى الدورة التالية

تركيب Do While … Loop : ويستخدم لتنفيذ أمر طالما تحقق شرط ما

Do While Condition
Command…
Loop

مثلاً :

Do While x > 10
X = x + 1
Msgbox x
Loop

لاحظ أنه لن يعرض أية رسالة في التركيب السابق , لا مشكلة في هذا الآن

وهناك صيغة أخرى لهذا التركيب هي :

Do
Commands...
Loop While Condition

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

تركيب Do Until … Loop : ويستخدم لتنفيذ أمر ما بشكل متكرر طالما أن الشرط غير متحقق

Do Until Condition
Command…
Loop

فمثلاً (لاحظ أننا غيرنا مكان الشرط في المثال السابق) :

Do
X = x + 1
Msgbox x
Loop Until X > 10

لاحظ أنه في هذا الأمر , سيعرض رسائل إلى أن تصل قيمة X إلى 11 , أي عندما يكون أكبر من 10 , بينما في الكود السابق لن يعرض أية رسالة لأن X أصلاً = صفر , أي أنه ليس أكبر من 10 وبالتالي لن يكمل التركيب الحلقة

لاحظ , تركيب While سيتابع الدوران طالما تحقق الشرط , بينما تركيب Until سيوقف الدوران إن تحقق الشرط .

يمكنك تذكر هذه الملحوظة من خلال معنى الكلمتين :

While : تعني ----> طالما الشرط صحيح , ننفذ الكود

Until : تعني ----> ننفذ الكود حتى يصبح الشرط صحيح

تم تعديل بواسطه Ala2 VB
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الرابع : أنواع البيانات .

يمكنك استعمال أنواع البيانات لحفظ البيانات والمعلومات سواء المدخلة من المستخدم أو قيم افتراضية أو القيم الداخلة في المعالجة والحسابات , كما أنه لا تقتصر أنواع البيانات على الأرقام والحروف , وإنما تشمل أيضا الكائنات وغيرها الكثير.

عندما تقوم بتعريف نوع بيانات جديد , فإن البرنامج يحجز مساحة معينة (تختلف باختلاف نوع البيانات) من ذاكرة الجهاز , وهذه المساحة لها عنوان في الذاكرة , لكن انت يمكنك الوصول الى المساحة من خلال كتابة الاسم الذي عينته لنوع البيانات .

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

الثوابت : قيم ثابتة تعطي قيمة معينة , بحيث لا يمكنك تغييرها وقت تنفيذ البرنامج , ولكن يمكنك استدعاؤها في أي مكان من البرنامج , والشكل الثابت لتعريف ثابت ! هو :

Const X = Val

حيث :

Const : كلمة محجوزة توضح اننا نعرف ثابتاً

X : اسم الثابت , ويراعى انه لا يكون به رموز غير الشرطة السفلية (_) ويكون من مكون من احرف وارقام انجليزية , ولا يحتوي على مسافات ولا يكون كلمة محجوزة , مثل اني اعرف ثابت اسمه IF ! أو For , Const , Do , IS ... إلخ

وحتى تعرف هل الكلمة محجوزة أم لا , ستتحول معك إلى اللون الأزرق .

Val : قيمة الثابت

فمثلاً لتعريف ثابت نصي فيه جملة ما , نكتب :

Const S = "hi , my name is alaa adel , and I am a member in arab team 2000 forum . and here are some VB lessons"

نفرض اني أريد عمل بعض العمليات على الجملة السابقة في عدة مواضع من البرنامج , فبدلاً من كتابة الجملة أكثر من مرة في البرنامج , يكفي ان نكتب S .

ملحوظة أخيرة : كلمة Private تستخدم لتعريف ثابت خاص , أي انه لا يمكنك الوصول إليه من خارج الإجراء أو من خارج النافذة التي عرف فيها

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

للوصول إلى هذا القسم , كل ما عليك هو اختيار كلمة (General) من القائمة المنسدلة التي في أعلى يسار محرر الكود .

المتغيرات : قيم يمكنك تغييرها أثناء زمن تنفيذ البرنامج .

أي أنك يمكنك تغييرها أثناء التنفيذ , إما لغرض معالجة إدخال من المستخدم , أو حفظ قيمة دوارة (مثل X في دوارات For و Do في الدرس السابق) , وغيره الكثير من الأمثلة

والشكل العام لتعريف متغير هو :

(Public , Private , Dim , Static) X As {New} Type

حيث :

Public و Private و Static و Dim هي كلمات محجوزة يجب كتابة واحدة منها , وشرحها كالتالي :

Dim : تعريف متغير داخل الدالة أو الإجراء الحالي فقط , وهذا يقلل من المساحة المستخدمة من قبل البرنامج حيث لن يتم حجز مساحة المتغير إلا عند استدعاء الدالة أو الإجراء الذي فيه هذا المتغير , كما أنك لن تستطيع التعامل معه من خارج هذه الدالة أو الإجراء

Private : تعريف متغير خاص , وغالبا توضع المتغيرات من نوع Private في القسم General ليتم الوصول إليها من جميع الإجراءات والدوال في النافذة الحالية.

Public : تعريف متغير عام يمكن الوصول إليه من خلال جميع أجزاء البرنامج , وغالبا يوضع في القسم General أو في Module (سنتطرق لها لاحقاً بإذن الله تعالى)

Static : وهي تستخدم إن كنت ستستخدم المتغير كعداد , أو إن كنت تريد أن تبقى قيمته كما هي عند الخروج من الإجراء ومن ثم العودة إليه

فمثلاً , لو وضعت متغير X من النوع Integer معرف كـDim في إجراء Timer , وجعلت قيمته تزيد بمقدار ما عند كل مرة يستدعى فيها الإجراء

فستلاحظ أن قيمته لا تزيد , لأنه كلما تم استدعاء الإجراء فستعود قيمة المتغير إلى البداية

لكن مع تعريف المتغير كـStatic فإن قيمته ستزيد

جرب الأمر التالي في حدث Timer لأداة مؤقت :

Dim X As Integer
X = X + 1
Me.Caption = X

جرب مرة مع Dim وأخرى مع Static ولاحظ الناتج

X : اسم المتغير , ويخضع للشروط السابق ذكرها في اسم الثوابت

As : كلمة محجوزة لربط الاسم بالنوع

New : كلمة محجوزة تستخدم فقط إن كنت تريد تعريف كائن جديد , مثل تعريف نافذة جديدة أو غيره

Type : نوع المتغير

لتعريف متغير رقمي مثلاً نكتب :

Dim Num_Var As Integer

أنواع البيانات الأساسية :

String : متغير نصي

Integer : متغير رقمي

Byte : متغير رقمي , أقصى قيمة له هي 255

Double : متغير بفاصلة عشرية

Currency : عملة (فلوس)

Date : تاريخ

Boolean : قيمة منطقية (صح True أو خطأ False)

Long , Single متغيرات رقمية أيضاً

Variant : متغير "متلون" أي أنه يستعمل للتعامل مع أي نوع بيانات سواء كان رقمي أم نصي ... إلخ

ملحوظة : قد تجد عدة أنواع رقمية مثلاً , لكنها تختلف في المدى (أي أقصى قيمة تتقبلها , مثلاً Byte مداه من 0 إلى 255) وأيضاً في الحجم الذي تستخدمه من ذاكرة الجهاز

حجم المتغيرات :

كل متغير كما ذكرت يحجز جزءاً من الذاكرة , وحجم هذا الجزء يختلف من متغير إلى آخر , فمثلاً

- Integer يحجز 2 بايت

- Long يحجز 4 بايت

- Byte يحجز بايت واحد

- Single يحجز 4 بايت

- Double يحجز 8 بايت

- Variant يحجز 16 بايت

ملحوظة صغيرة , يمكنك تعيين أقصى حد لأحد المتغيرات من خلال إشارة ( * ) , فمثلاً يمكنك كتابة :

Dim S As String * 20

وهكذا فإن المتغير S سيكون أقصى طول له هو 20 حرف

الكائنات :

يمكنك تعريف متغير يأخذ صفات كائن ما وخصائصه ووظائفه من خلال أمر New السابق وأمر Set , ويكون الشكل كالتالي :

(Public , Dim , Private) Name As New Object

Set Name = Object

حيث :

Name : اسم المتغير

New : كلمة محجوزة , وتعني انه كائن جديد

Object : اسم الكائن , وعليك الاختيار من القائمة الظاهرة لك , وهذا شرح لأبرز ما فيها :

Project : وهو اسم المشروع , وهو كائن المشروع الحالي

Collection : مجموعة كائنات

Form : وهو اسم النموذج الحالي , وهو كائن النافذة الحالية

Set : كلمة محجوزة لربط الكائن بالمتغير

فمثلاً , لتعريف متغير من نوع النافذة الحالية , نكتب :

Dim F As New Form1

Set F = Form1

وهكذا يمكنك التعامل مع F على انه النافذة الحالية

أنواع البيانات المخصصة :

هذه الجزئية مهمة , وهي توفر لك إمكانية إنشاء نوع بيانات خاص بك (مثل String و Integer) خاص بك . ويكون ذلك بالشكل التالي :

(Public , Private) Type Name

Value1 As Type

Value2 As Type

Value… As Type

End Type

حيث :

Type الأولى : هي كلمة محجوزة لنخبر البرنامج أننا نعرف نوعا خاصاً جديداً

Name : اسم النوع ويخضع للشروط السابقة الخاصة بأسماء المتغيرات والثوابت

Value As Type : كأنك تعرف متغير مثل X As Integer

مثلاً , لتعريف نوع جديد خاص بطلبة مدرسة ما , يكون كالتالي :

Private Type Student

Name As String

Mark As Byte

End Type

الآن تعال في أي إجراء (مثلاً Form1_Load) واكتب :

Dim Alaa As Student

Alaa.Name = "Alaa !"

Alaa.Mark = 255

أولاً : تلاحظ أنك عندما كنت تكتب نوع المتغير , ظهر في القائمة الخاصة بالأنواع النوع الجديد الخاص بنا (Student)

ثانياً : بعد كتابتك للنقطة في السطر الثاني والثالث , تظهر قائمة فيها Mark و Name

الآن أضف الكود التالي بعد نهاية الكود السابق , ومن ثم شغل البرنامج :

Msgbox Alaa.Name

Msgbox Alaa.Mark

تلاحظ ظهور رسالتين فيهما القيم التي عيناها سابقاً

تم تعديل بواسطه Ala2 VB
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الخامس : مقدمة إلى الدوال .

الدالة : هي مثل الإجراء يمرر له بارامترات (عناصر أو معلومات) ليقوم بمعالجتها بشكل معين , ولكنها تعيد نتيجة .

مثال عام لدالة :

(Public / Private) Function FuncName (Par1 As  DataType , [Optional] Par2 As DataType = 10 , ParN…) As DataType

نفصل السطر السابق :

Public / Private : يجب كتابة واحدة فقط منهما , وتم شرحهما سابقاً .

Function : كلمة محجوزة لتعريف المترجم أننا نكتب دالة .

FuncName : اسم الدالة , ويخضع لشروط تسمية المتغيرات والثوابت .

Par1 , Par2 , ParN : اسم البارامتر , ويخضع للشروط السابقة أيضاً , ويجب إدخال هذه البارمترات عند التعامل مع الدالة فيما بعد.

Optional : كلمة محجوزة , تكتبها قبل اسم البارمتر الاختياري والذي يمكن تجاهله عند التعامل مع الدالة .

DataType : نوع البيانات (Integer , string )

= 10 : كتبناها لأن البارامتر Optional , وهي قيمة افتراضية للمتغير , يمكنك وضع أي رقم آخر غير 10 , أو كما تريد طبعاً

End Function : كلمتان محجوزتان تنهيان الدالة .

مثال لدالة تجمع ثلاثة أرقام , وتعيد الناتج كـInteger :

Private  function AddFunc(X , Y , Z As Integer) As Integer
AddFunc = X + Y + Z
End Function

ملحوظة : يمكنك استعمال جملة Exit Function للخروج من الدالة .

تم تعديل بواسطه Ala2 VB
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

شكرا جزيلا اخي الكريم على هذه الدروس الرائعه..

جزاك الله كل الخير

بس كان عندي سؤال

ماهو الامر"go to" الموجود في الدرس3...ومتى يستخدم؟

ولك جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
السلام عليكم

شكرا جزيلا اخي الكريم على هذه الدروس الرائعه..

جزاك الله كل الخير

بس كان عندي سؤال

ماهو الامر"go to" الموجود في الدرس3...ومتى يستخدم؟

ولك جزيل الشكر

وعليك السلام أخي إسلام ...

أمر Go To يستخدم لاستدعاء جزء من الإجراء ,,, فمثلاًً :

Private Sub X()
If Text1.Text = "7" Then GoTo S

S:
Msgbox "It's 7"

هنا عند تحقق الشرط سيتم استدعاء الجزء S والذي يحتوي على أمر عرض الرسالة

طبعاً , يمكنك تغيير S وما يحتويه

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس السادس : المصفوفات .

المصفوفات : هي عبارة عن مجموعة من المتغيرات , متشابهة في النوع ومختلفة في البيانات

تمكنك المصفوفة من حفظ الكثير من البيانات بسرعة كبيرة

مثلاً :

انت تريد تسجيل أسماء طلاب مدرسة لمعالجتها فيما بعد

ولنفرض أن عدد الطلاب هو 100 , فهل ستقوم بتعريف 100 متغير ؟!!!

لذا يمكنك تعريف مصفوفة من 100 عنصر والتعامل مع كل عنصر على حدى

الشكل العام للمصفوفة يكون كالتالي :

(Public / Private) ArrayName(FirstItemIndex To LastItemIndex) As DataType

نشرح :

(Public / Private) : معروفة

ArrayName : اسم المصفوفة , ويخضع لشروط اسم المتغيرات والثوابت ... إلخ

FirstItemIndex : رقم أول عنصر في المصفوفة

To : كلمة محجوزة لا بد منها هنا

LastItemIndex : رقم آخر عنصر في المصفوفة

As : كلمة تعيين محجوزة

DataType : نوع البيانات مثل String و Integer

الصيغة السابقة تستخدم عندما تعرف مصفوفة تبدأ من رقم غير الصفر

فيما عدا ذلك , يمكنك كتابة :

(Public / Private) ArrayName(LastItemIndex) As DataType

ولإنشاء مصفوفة غير منتهية اكتب :

(Public / Private) ArrayName() As DataType

التعامل مع المصفوفة :

هناك دالتان مهمتها للتعامل مع المصفوفات وهما :

LBound(ArrayName) : وتعيد رقم العنصر الأول في المصفوفة

UBound(ArrayName) : وتعيد رقم العنصر الأخير في المصفوفة

التعامل مع العناصر :

يمكنك التعامل مع عناصر المصفوفة كأي متغير ولكن مع ذكر رقم العنصر

فمثلاً , لتعيين قيمة العنصر الخامس في مصفوفة تبدأ من الصفر , نكتب :

ArrayName(4) = "SomeValue"

لاحظ : أنه عندما تكون المصفوفة تبدأ من الصفر , ننقص مقدار 1 من رقم العنصر , فمثلاُ رقم العنصر الرابع هو 3 , ورقم العنصر الخامس هو 4 ... وهكذا

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

For i = LBound(ArrayName) To UBound(ArrayName)
ArrayName(i) = i
Next i

هنا يكون العنصر رقم 1 له القيمة 1 , ورقم 2 قيمته 2 , وهكذا....

يمكنك إنشاء مصفوفة متعددة الأبعاد من خلال الأمر التالي :

(Public / Private) ArrayName(FirstDimensionIndex , SecondDimensionIndex , 60thDimensionIndex) As DataType

لاحظ أن VB يدعم كحد أقصى 60 بعداً

يمكنك تخيل المصفوفة كجدول

وهذا رسم بسيط لمصفوفة ثنائية الأبعاد :

مصفوفات الأدوات :

الادوات والكائنات أيضاً لها مصفوفات

فمثلاً , ضع على النموذج أداة زر أمر

ثم قم بنسخ الأداة , ولصقها

تظهر لك الرسالة التالية :

You already have a control named 'Command1' . Do you want to create a control array ?

- إن اخترت Yes فسيقوم بإنشاء مصفوفة كائنات

- إن اخترت No فلن ينشئ مصفوفة كائنات

- إن اخترت Cancel ستلغى عملية النسخ

لذا اختر Yes

ضع ثلاثة أزرار أخرى بنفس الشكل (نسخ , لصق , Yes)

الآن , انقر نقراً مزدوجاً على أحد الأزرار , تظهر نافذة الكود , ولكن ...

إجراء Click مختلف , فقد أضافة إليه المتغير Index وهو يمثل رقم العنصر في المصفوفة

اكتب في هذا الإجراء :

Msgbox Index

فعند الضغط على أي زر فسيعرض لك الترتيب الخاص به

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ملحوظة بخصوص التعامل مع المصفوفات , وهي أمر ReDim حيث أنه يقوم بإعادة تعريف المصفوفة

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

وصيغة الأمر كالتالي :

ReDim ArrayName(NumberOfItems) As DataType

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس السابع : الأوامر العشوائية .

يمكنك توليد أرقام عشوائية من خلال أمرين سنناقشهم بإذن الله تعالى في هذا الدرس

- فائدة الأوامر العشوائية :

تستخدم بكثرة في الألعاب مثلاً إظهار العدو في مكان عشوائي من الشاشة

وأيضاً في الكثير من الأغراض

- الأمر Rnd

وهو يقوم بتوليد أرقام عشوائية , وصيغته كالتالي :

Rnd(Number)

قم بتنفيذ الأمر في Form_Load

واكتب :

Rnd(5)

قم بتشغيل البرنامج عدة مرات ولاحظ :

- الرقم الذي يظهر هو نفسه دائماً

- الرقم فيه فاصلة عشرية رغم أننا أدخلنا عدداً صحيحاً

حل المشكلة الأولى هو أن الأمر Rnd يولد أرقاماً عشوائية تقريباً , ولكنها بنفس الترتيب

لذا سنستخدم أمر Randomize لتوليد أرقام عشوائية فعلاً

ويكون كالتالي


Rnd(Number)
Randomize

جرب الكود السابق بعد تعديله إلى :


Rnd(5)
Randomize

رأيت الفرق ؟

الآن نأتي إلى المشكلة الثانية وهي , أن الأرقام غير صحيحة , وفيها فاصلة

لذا سنستخدم دالة Int لتحويل العدد المدخل لها إلى عدد صحيح

فيصبح الكود


Me.Caption = Int(Rnd(5))
Randomize

لاحظ أن الرقم الظاهر هو 0 دائماً !

الآن نأتي إلى الجزء الآخر وهو إزالة الفاصلة , ويكون عن طريق ضرب الرقم في 10 أو 100 أو غيره حسب عدد المنازل التي تريد عرضها

فيصبح الكود كالتالي :


Me.Caption = Int(Rnd(5) * 10)
Randomize

لاحظ أن الرقم الظاهر آحاد دائماً

يمكن تعديل الكود إلى :

Int(Rnd(5) * 1000)

لعرض ثلاثة منازل , وكلما زاد الرقم المضروب فيه (لاحظ أنه يجب يكون من مضاعفات العشرة) كلما زاد حجم الرقم المعروض

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس الثامن : جمل Option .

جمل Option هي جملتان تكتبان في قسم General لتعميم أمر معين على جميع إجراءات ودوال النافذة

الجملة الأولى Option Base

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

وتكون بالشكلين التاليين :

إما :

Option Base 1

لتبدأ جميع المصفوفات من 1

أو

Option Base 0

لتبدأ جميع المصفوفات من 0

وهذه الجملة لا تقبل سوى 1 و 0

الجملة الثانية Option Explicit

فائدتها هي انها ترغمك على تعريف المتغيرات

فمثلاُ , إذا لم تكتب هذه الجملة ثم كتبت :


MsgBox X
X = 10

فإن VB سيعرف X كمتغير متلون Variant تلقائياً

أما إن كتبت


Option Explicit
 

في قسم General

فإن VB سينبهك إذا لم تقم بتعريف المتغير كما في الكود السابق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك أخي علاء ،

لدي إضافة صغيرة

الجملة الثالثة Option Compare

فائدة هذا الأمر تحديد طريقة المقارنة بين النصوص ، وهذه هي الصيغة العامة :

Option Compare { Binary | Text }

- الخيار Binary (افتراضي) : يجعل عملية المقارنة بين النصوص Case Sensitive أي أن "A"<>"a"

- الخيار Text : يجعل عملية المقارنة Insensitive أي أن "A"="a"

تم تعديل بواسطه المبرمج أحمد
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله خيرا على المعلومة أخي أحمد

وعلى اهتمامك بالموضوع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الدرس التاسع : التعليقات

التعليقات مهمة جداً في البرامج مفتوحة المصدر , وفي البرامج التي يعمل عليها أكثر من شخص في وقت مختلف

فهي تمكن المبرمج من فهم فائدة الكود

تخيل أمامك كود كبير 500 سطر , يؤدي وظيفة معينة

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

لكن إن كان المبرمج لهذا الكود قد وضع تعليقات تبين وظيفة كل جزئية , فستفهم الكود بسرعة كبيرة

وستوفر على نفسك الكثير من الوقت

التعليقات هي ببساطة , سلاسل نصية تكتب داخل الكود , ولكن المترجم يتجاهلها ولا تدخل في التنفيذ

- انواع التعليقات في VB :

1/ تعليقات من خلال الفاصلة , وتبدأ بالرمز الذي بين الأقواس (') وكل ما يلي هذا الرمز يعتبر تعليق

مثلاً :

This is a code 'This is a comment

2/ تعليقات من خلال الكلمة Rem , وتكون كالتالي :

Rem : The next code will do .....
This is the code

- اللون الافتراضي للتعليقات هو اللون الأخضر , ويمكنك تغييره من خلال قائمة Tools ثم Options ثم Editor Format

وبعد ذلك , من قائمة Code Colors اختر Comment Text

ومن قائمة Foreground اختر اللون الذي يناسبك

- دعم التعليقات للغة العربية :

عند تثبيتك للفجوال بيزك للمرة الأولى , قد تلاحظ (قد) أن التعليقات العربية لا تظهر بحروف مفهومة

لذا , ومن نافذة Editor Format السابقة , ومن قائمة Font اختر خطاً يدعم اللغة العربية (أنصح بـ Courier New(Arabic))

ثم اضغط OK

تم تعديل بواسطه Delphawi
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله بك أخي دلفاوي ورزقك الصحة والعافية ،درس شامل وممتاز

أريد أن أذكر نقطة مفيدة في مثالك السابق ،يجب التصريح عن جميع المتحولات (X , Y , Z) وإلا فستبقى معرفة على أنها من النوع الثقيل Variant:

Private  function AddFunc(X , Y , Z As Integer) As Integer
AddFunc = X + Y + Z
End Function

ملحوظة بخصوص التعامل مع المصفوفات , وهي أمر ReDim حيث أنه يقوم بإعادة تعريف المصفوفة

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

وصيغة الأمر كالتالي :

ReDim ArrayName(NumberOfItems) As DataType

صدقت لأن المصفوفة ستفقد معلوماتها عند أعادة تعريفها ،ويمكن زيادة حجم المصفوفة النصية بإضافة الكلمة Preserve بدون أن تفقد معلوماتها كالآتي:

ReDim Preserve ArrayName(NumberOfItems)

والأمر Erase يحذف المصفوفة السابقة:

Erase ArrayName

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكــم ورحمـة الله وبركاتــة ،،

شكراً لك اخي الكريم

على الشرح الوافي

لكن لدي سؤال

ان سمحت لي وهو: كيف لي بداية كتابة البرنامج؟؟

بمعنى ما هي بدية البرنامج؟؟ لانني حاولت تطبي ما هو في لغة فجيوال بيسك 2008

لكن هناك اخطاء في تعريف المتغيرات وإسم الفورم

وأخطاء بالفواصل

وهذا المثال البسيط الذي لم يطبق معي


[u]Dim[/u] M1 As Integer
[u]Dim[/u] M2 As Integer
[u]Dim[/u] M3 As Integer
[u]Dim[/u] sum As Integer
[u]Dim[/u] AV As Double
M1=Val(Text1.Text)
M2=Val(Text2.Text)
M3=Val(Text3.Text)
sum = M1 + M2 + M3
AV = Sum / 3
End Class
Public Class Form1

طبعا اعلم ان هناك اخطاء كثيرة

وانا لا اخجل من الاخطاء لأنها تجربتي الاول مع هذه اللغة

............

اتمنى الإفادة وشكرا لكم

ملاحظة:

ما تحته خط هو الاخطاء

...................

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ما شاء الله شرحك أسطورة جازاك الله كل الخير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

http://www.arabteam2000-forum.com/index.php?showtopic=68928&st=0

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .