موفق جمال زكريا

الإجراءات والوظائف

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

أخوتي سأشرح في هذا الدرس معنى

- الإجراء sub

- الوظيفة function

1- أولاً : الإجراء

sub

فوائده :

1- تسهيل فهم البرنامج .

2-تخفيف الشيفرة وذلك يفيد في تسهيل مراجعة البرنامج.

3-سهولة تطوير البرامج.

4-تسهل العمل الجماعي .

الشرح :

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



Form1.Width = 12000

Form1.Height = 9000

Form1.Left = 0

Form1.Top = 0

Form1.BackColor = QBColor(14)

End Sub
Private Sub Command1_Click()

وستلاحظ تغيير قياس الفورم ..... أوكي الآن أنشئ إجراء وإسمه mofak .... من قائمة أدوات ثم اختار

add Procedure ثم اكتب في خانة الإسم

mofak

واختار الخيار

private

ثم إضغط أوكي الآن أكتب الكود التالي ضمن الإجراء

[ALIGN=LEFT]Private Sub mofak()

Form1.Width = 12000

Form1.Height = 9000

Form1.Left = 0

Form1.Top = 0

Form1.BackColor = QBColor(14)

End Sub[/ALIGN]

ثم استدعي الإجراء من الزر بكتابة إسمه فقط كالتالي :

mofak

فتلاحظ تنفيذنفس الكود الموجود في الإجراء هل فهمت معنى الأجراء ......................

الآن إذا أردت أن تستدعي الإجراء من زر آخر ولكن تريد تنفيذ نفس الكود ولكن لون الفورم ليس باللون الأصفر مثلاً ...ماالحل :

إذا يجب إستخدام البرامترات : ويوضح ذللك بتعديلك للإجراء كما يلي :

[ALIGN=LEFT]Private Sub mofak(w As Integer, h As Integer, l As Integer, t As Integer, c As Integer)

Form1.Width = w

Form1.Height = h

Form1.Left = l

Form1.Top = t

Form1.BackColor = QBColor(c)

End Sub[/ALIGN]

لاحظ أن مابين القوسين هما البرامترات الداخلة للإجراء .... وطريقة استعدعائه كما يلي :

Call mofak(12000, 9000, 0, 0, 15)

لاحظ أننا استدخمنا الكلمة المحجوزة

call

وذلك لأن الإجراء يأخذ قيم أي برامترات

ماذا حصل ؟؟؟؟؟

لقد استدعي الإجراء وأخذ البرامترات القيم التالية :

w=12000

h=9000

l=0

t=0

c=15

ثم طبق الكود على الخصائص في الإجراء ...............

أرجوا في نهاية الدرس أن تكون قد توضحت الفكرة .......................

إنتظرو الدرس التالي .....................................(clock)

(gift)(f)

0

شارك هذا الرد


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

الف شكر اخى العزيز موفق على هذا الدرس الممتع وبارك الله فيك على هذا المجهود .

فى انتظار الدرس الثانى الله يوفقك :) :)

[email protected]

0

شارك هذا الرد


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

السلام عليكم :

الآن سأشرح لكم ال function :

وقبل أن أبدأ أقول لمن لم يقرأ الدرس الأول عليه الدخول إلى الرابط التالي :

http://www.arabteam2000.com/vb/showthread....&threadid=17156

البداية :

فوائده :

نفس فوائد الإجراء ولكن بالإضافة يعيد قيمة من خلال إسمه ، و يستخدم عادة لإجراء عملية حسابية :

سأكتب الآن مثال لــ function يفيد في جمع عددين .....

أولا :ً لإضافة فانكشن إلى الكود من قائمة أدوات أختر الخيار

function ثم سمي الفانكشن باسم ولنفرض sum واختر الخيار private ، ثم اضغط زر أوكي .

إقرأ الكود التالي وبعده إقرأ الشرح ....





sum = num1 * num2

End Function
Private Function sum(num1 As Integer, num2 As Integer)

وطريقة إستدعاء الفانكشن هكذا :

MsgBox sum(2, 3)

فنلاحظ ظهور صندوق فيه نتيجة ضرب العدد اثنان بالعدد ثلاثة .

لقد لاحظتم أن كتابة الوظيفة نفس كتابة الإجراء ولكن الفرق الوحيد هو أن الفانكشن يعيد قيمة وذلك من خلال إسمه قلت إسمه أي نكتب النتيجة التي نريد إعادة قيمتها في الإستدعاء نفس إسم الفانكشن ، وقد لاحظتم أنني كتبت : sum=vlaue

أرجوا أن تكونو قد استفدتم من هذا الدرس وأتمنى منكم فمهم هذا الدرس والذي قبله لكي نتابع المشوار .......تقبلو تحياتي ...

أخوكم : موفق جمال زكريا

(gift)(f)

0

شارك هذا الرد


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

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

الدرس الثالث :في الإجراءاتsubوالوظائف function والفرق بينهما:

إخواني لمن لم يقرأ الدروس السابقة عليه بقرائتها من الروابط التالية :

الدرس الأول:

http://www.arabteam2000.com/vb/showthread....&threadid=17156

الدرس الثاني:

http://www.arabteam2000.com/vb/showthread....&threadid=17172

عنوان الدرس : تمرير القيم إما Byref أو Byval .

ماأردي إن سمعتم بهذه الكلمتين المحجوزتين ....على كل حال نستخدم إحدى الكلمتين قبل البرامترات التي ضمن الفانكشن أو الإجراء ........

إقرأ المثال التالي ثم لاحظ :

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

[ALIGN=LEFT]Private Function add(ByRef str1 As String, ByRef str2 As String, ByRef str3 As String)str3 = str1 + str2add = str3End Function[/ALIGN]
لاحظ قبل إسم البرامتر وضعت الكلمة Byref وذلك لتمرير القيمة بالعنوان ... ستفهم ذلك بعد قليل حين الإستدعاء ....

أكتب الكود التالي في زر :

[ALIGN=LEFT]Private Sub Command1_Click()Dim a As StringDim b As StringDim c As Stringa = "بسم الله  "b = "الرحمن الرحيم"c = "موفق جمال زكريا"MsgBox add(a, b, c)MsgBox aMsgBox bMsgBox cEnd Sub[/ALIGN]
فلاحظ أن قيمة المتحول c قد تغيرت عند الإستدعاء .....لأننا وضعنا قبل البرامتر Byref أما لو وضعنا قبلها Byval فلا تتغير النسخة الأصلية للمتحول ......

الخلاصة :

- إذا كتبنا قبل البرامتر Byref فإنه يمرر المتحول بالعنوان أي يغير قيمة النسخة الأصلية .

- إذا كتبنا قبل البرامتر Byval فإنه يمرر المتحول بالقيمة أي لاتغير قيمة المتحول الأصلي .

ملاحظات هامة :

1- إذا لم نكتب قبل البرامتر شئ فافتراضياً يأخذ الفيجوال التمرير بالعنوان أي Byref .

2- عند كتابة Byval فإنه يتم نسخ المتحول مرة أخرى إلى الفانكشن فإذا كان المتحول كبير مثل مصفوفة مثلا فيفضل تمريره بالعنوان .....

أرجوا أن تكونوا قد استفدتم من هذا الدرس ......

وأنتظرر الدرس القادم ....

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

أخوكم المحب لكم : موفق جمال زكريا .....

(gift)(f)

(gift)(f)

0

شارك هذا الرد


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

الله ينور يا اخى , اكمل المسيرة على بركة الله :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

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

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