تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الفصل(8): الدوال والاجراءات
#1
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
اليوم سوف نتطرق لموضوع بالغ الأهمية في فيجوال بيسك دوت نت وهو الاجراءات و الدوال.
أفضل شرح هذا الدرس باستخدام مشروع Widows Appllication


أولا:الدوال Functions
الدالة Function : هي عبارة عن برنامج صغير يستقبل وسيطات(Parameters) ويطبق بعض العمليات عليها ثم يخرج لنا ناتج الدالة...وتكون بالشكل التالي:

كود :
Function FunctionName ( Parameters)
أي أننا نقوم بتعريف دالة جديدة باستخدام الكلمة المحجوزة Function ونضع بعدها اسم الدالة FuncionName ثم بين قوسين نضع الوسيطيات(Parameters)


القسم الأول: الدوال الموجودة في فيجوال بيسك دوت نت
بداية الدوال الموجودة في فيجوال بيسك دوت نت كثيرة جدا وسنشرح القليل منها ان شاء الله


هناك دوالة رياضية و هناك دوال لها وظائف تقنية كالتحويل وبعض الوظائف الأخرى..
هناك تركيبة(Structure-راجع فصل التركيبات) خاصة باللغة تسمى بMath وتحتوي الكثير من الدوال ويمكن استخدامها بسهولة..
مثال: حساب القيمة المطلقة لقيمة عددية(نعرف القيمة المطلقة بانها القيمة الموجبة للمقدار سواء كان موجبا أو سالبا)
أنشيء نموذج جديد وضع فيه أداة نص TextBox وأداة تسمية Label وأداة زر Button واضبط الخصائص ليظهر بالشكل التالي:





وفي اجراء Click للزر Button أدخل الكود التالي:


كود :
Label1.Text = Math.Abs(Integer.Parse(TextBox1.Text))
ببساطة: استدعينا الدالة Abs من التركيبة Math والتي تقوم بحساب القيمة المطلقة ولاحظ أننا استخدمنا الدالة Integer.Parse لتحويل محتوى النص من صورته النصية إلى عددية

مثال آخر:

Label1.Text = Math.Pow( 2 , 3 )
وضعت هذا المثال لتوضيح أن الدالة لا تقتصر على وسيط واحد بل أكثر حسب المراد وتقوم الدالة Pow بحساب القوة الثالثة للأساس 2 ويمكنك تغيير القيم حسب رغبتك.

وبتطرق بسيط إلى الدوال التي تقوم بوظائف تقنية كالتحويل بنستعرض بعض الأمثلة:
مثال: تحويل القيمة النصية إلى قيمة عددية
كما رأينا في مثال حساب القيمة المطلقة فاننا قمنا بعملية تحويل من نص(مدخل صندوق النص) إلى قيمة عددية لان الدالة Abs لا تتعامل مع نصوص بل أعداد وجرب إزالة التحويل وسيظهر الخطأ.
اذن ان اردنا التحويل من قيمة نصية لعددية يمكننا استخدام الدالة Integer.Parse(String) وتقوم بتحويل النص الوسيط إلى قيمة عددية

مثال آخر:تحويل القيمة العددية لنصية:
هناك بعض الدوال التي لا تستطيع التعامل مع القيمة على صورتها العددية بل تحتاج وسيط نصي فنقوم بتحويل الصورة العددية إلى صورتها النصية باستخدام الدالة
كود :
[align=left]     Str(Number)
[/align]
فهذه الدالة تستقبل وسيط عددي ويكون ناتجها صورة نصية

بهذا نكون انتهينا من الدوال الموجودة في فيجوال بيسك دوت نت

الآن ماذا اذا أردت صنع دالة خاصة مثلا تقوم بحساب مساحة دائرة...؟
يمكنك بناء دالة باستخدام الكلمة المحجوزة Function كما وضحنا في بداية الدرس
بداية الصورة الافتراضية للدالةو بما أن للدالة ناتج و قيمة فالافضل تحديد نوع الدالة:
كود :
[align=left]     Function Fun_Name (Parameters) As Type
[/align]
الآن سوف نسمي الدالة باسم CircleArea وعلينا تحديد الوسيطات اللازمة لعلمية حساب المساحة وكما هو معروف لا يلزمنا سوى نصف قطر الدائرة وبالنسبة للقيمة ط (PI) يمكننا استخدامها من خلال الثابت Math.PI
تمعن في الكود التالي:

كود :
[align=left]     Function CircleArea(ByVal Radius As Integer) As Double
    Dim Area As Double
    Area = Math.PI * Math.Pow(Radius, 2)
    Return Area
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As      System.EventArgs) Handles Button1.Click
    Label1.Text = CircleArea(Integer.Parse(TextBox1.Text))
    End Sub
[/align]
الآن انظر معي:
قمنا بصنع دالة سميناها CircleArea والتي تقوم بحساب مساحة الدائرة حسب نصف قطرها المدخل
وبعدها قمنا بتحديد الوسطيات وهي Radius نصف القطر
والآن كما قلنا فان للدالة ناتج لها يمكن استخراجه من عمليات الدالة الداخلية لكن كيف يمكن اعطاء هذه الدالة تلك القيمة بعد انتاجها داخل الدالة....
يمكن ذلك باحدى طريقتين:
  • [*=center]استخدام الكلمة المحجوزة Return
    [*=center]اسناد ناتج الدالة المطلوب إلى الدالة مباشرة
توضيح:
في المثال الاخير أردنا أن يكون ناتج الدالة هو المتغير Area ويمكن إعطاء قيمته للدالة كالتالي:
الاولى:
استخدمنا الأمر Return واستخدمناه كالتالي:

كود :
Return Area
ويقوم باعطاء قيمة Area لناتج الدالة

الثانية:
يمكننا استبدال الأمر Return بالاسناد المباشر للقيمة كمثال:

كود :
CicleArea=Area
أما بالنسبة لByVal و ByRef فيتم شرحهما بعد قليل
لكن ماذا ان اردت الخروج من الدالة عند الوصول لنتيجة معينة
يمكن ذلك بسهولة باستخدام الأمر Exit Funtion
مثال:

كود :
[align=left]                         [align=right]                             [align=left]                                 [align=right]                                     [align=left]                                         Function Fun_Name (Parameters) As String
                                        If X > 2 Then Exit Function
                                        End Function
[/align]
                                 [/align]
                             [/align]
                         [/align]
                     [/align]

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

ثانيا:الاجراءات الفرعية Subs
تختلف هذه عن سابقتها بانها لا تخرج لنا نواتج وانما تقوم بتنفيذ تعليمات وفقا للوسيطات
بداية أيضا هناك اجراءات موجودة اصلا في فيجوال بيسك دوت نت وأخرى تصنعها انت
صياغة الاجراء الفرعي مشابهة لصياغة الدالة باختلاف أن الدالة يمكنك تحديد نوع ناتجها بينما الاجراء الفرعي تستطيع تحديد مقبض الإجراء
أولا : الدوال الموجودة في فيجوال بيسك دوت نت
سوف نستعرض مثالا من الاجراءات الموجود في فيجوال بيسك دوت نت ونوضح أجزاءه
مثال:
كود :
[align=left]     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As      System.EventArgs) Handles Button1.Click
    End Sub
[/align]
الشرح:
  • [*=center]الكلمة المحجوزة Private تفيد أن الاجراء يمكن استخدامه فقط داخل نموذج الحاضن فقط
    [*=center]الكلمة المحجوز Sub تفيد اننا نبدا بصنع اجراء فرعي
    [*=center]Button1_Click هو اسم الاجراء
    [*=center]ما بين القوسين تمثل الوسيطات المرسلة للحدث
    [*=center]الآن Handle تفيد كيف يتم اجراء الحدث وهنا ألحقناها ب Button1.Click وهنا نفيد الاجراء أن يتم تنفيذ الاجراء عند القيام بالضغط على Button1
    [*=center]End Sub تفيد بانتهاء الاجراء
الآن اصنع الاجراء الخاص بك بنفسك:
بداية الصيغة العامة للاجراء الفرعي هي
Sub

كود :
Sub_Name (Parameters)
    Statements
    End Sub
والآن لنقوم بتصميم اجراء فرعي يقوم باغلاق النموذج الذي نمرره للاجراء

كود :
Sub CloseForm(frm As Form)
            frm.Close()
            End Sub
لكن كيف يمكن استدعاء هذا الحدث وتمرير الوسيطات له
ضع زر Button جديد واضغط عليه ضغطا مزدوجا وقم يكتابة الكود التالي:
رمز برمجي:

CloseForm(Me)
هنا قمنا باستدعاء الاجراء CloseForm ومررنا له النموذج الحالي(Me)
ويمكن أيضا استدعاء الاجراء بالطريقة التاليه باستخدام الكلمة المحجوزة Call
مثال:
رمز برمجي:

Call CloseForm(Me)
الآن انتهينا من الدوال والاجراءات وبقت علينا قضية تتعلق بتمرير الوسيطات
الارسال بالقيمة او الارسال بالمرجع

أولا: الارسال بالقيمة باستخدام الكلمة المحجوزة ByVal
هنا يتم تمرير المتغيرات دون تغيير القيمة الاصلية للمتغير وبالتالي يتم ارسال نسخة جديدة من البيانات المرسلة في كل مرة تستدعي فيها الاجراء لذا فهي تستهلك مزيدا من الوقت لكنها لا تؤثر على باقي أجزاء البرنامج لانها تقوم بارسال نسخة جديدة من البيانات المرسلة.

ثانيا:الارسال بالمرجع باستخدام الكلمة المحجوزة ByRef
هنا يتم ارسال مؤشر للمتغير مما يمكنك بتغيير قيمة المتغير الاصلية وهنا لا يتم انشاء نسخة جديدة من البيانات بل فقط يتم ارسال البيانات الاصلية وهنا تكون العملية اسرع من الارسال بالقيمة

بهذا نكون قد انتهينا ان شاء الله من الشرح لهذا الفصل وسوف اعرض مثالا يجمع الكثير مما تم دراسته في الفصول السابقة.

أولا :قم بفتح مشروع جديد من نوع Windows Appllication
وأضف نموذج غير الاصلي وأيضا قم باضافة وحدة نمطية (Module) ويمكن استخدام الModule في صناعة الاجراءات واستخدامها في كامل اجزاء المشروع

ثانيا:سمي النموذج الاول بـ MainForm والثاني بـMsgForm
واضف الأدوات الظاهرة بالشكل واضبط خصائصها كما هو واضح:










في داخل الموديول أضف الكود التالي:

كود :
Const PI As Double = 3.14
    
        Structure Circle
    
            Public Function CalculateArea(ByVal Radius As Integer) As Double
                Return (PI * Math.Pow(Radius, 2))
            End Function
    
            Public Function CalculateLength(ByVal Radius As Integer) As Double
                Return (PI * Radius * 2)
            End Function
    
            Public Sub ShowMsg(ByVal Text As String, ByVal Title As String)
    
                MsgForm.Label1.Text = Text
                MsgForm.Text = Title
                MsgForm.ShowDialog()
            End Sub
    
            Dim A As String
        End Structure
في هذا الكود قمنا بتعريف ثابت اسميناه PI واسندنا اليه القيمة 3.14
وقمنا ببناء تركيبة من نوع Structure واسميناها Circle ووضعنا فيها دالتين واحدة تقوم بحساب محيط الدائرة والثانية تقوم بحساب مساحة الدائرة
كما قمنا بصنع اجراء يقوم بعرض النموذج MsgForm من خلال الامر ShowDialog الذي يقوم باظهار النموذج على شكل مربع حوار مثل مربعات الرسائل

أما في نموذج MainForm فتمعن في الأكواد التالية داخل النموذج

وكذلك نموذج الMsgForm

كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
وقد وضعت لكم المثال كاملا بالمرفقات
أو من الرابط التالي

http://www.4shared.com/rar/zxklLlvC/Example.html


نتمنى ان تكونوا قد استمعتم معنا

أبلغكم تحياتنا

Lo2i و Mohammed Asaad
انتظروا الدرس القادم


الملفات المرفقة
.rar   Example.rar (الحجم : 66.9 ك ب / التحميلات : 128)
الرد
تم الشكر بواسطة: nagoma
#2
جزاكم الله خيرا
الدرس يحتاج للتركيز فهمت 75% من محتوى هذا الدرس
واشكركم على المجهودات الطيبة
الرد
تم الشكر بواسطة:
#3
يارك الله فيك
الرد
تم الشكر بواسطة: nagoma
#4
(23-09-12, 12:41 PM)B3dak Hbebe كتب :
    السلام عليكم ورحمة الله وبركاته
   بسم الله الرحمن الرحيم
   اليوم سوف نتطرق لموضوع بالغ الأهمية في فيجوال بيسك دوت نت وهو الاجراءات و      الدوال.
   أفضل شرح هذا الدرس باستخدام مشروع Widows Appllication
   
   
   أولا:الدوال Functions
   الدالة Function : هي عبارة عن برنامج صغير يستقبل وسيطات(Parameters) ويطبق      بعض العمليات عليها ثم يخرج لنا ناتج الدالة...وتكون بالشكل التالي:
           

   
   
كود :
Function FunctionName ( Parameters)
    أي أننا نقوم بتعريف دالة جديدة باستخدام الكلمة المحجوزة Function ونضع بعدها      اسم الدالة FuncionName ثم بين قوسين نضع الوسيطيات(Parameters)
   
   
   القسم الأول: الدوال الموجودة في فيجوال بيسك دوت نت
   بداية الدوال الموجودة في فيجوال بيسك دوت نت كثيرة جدا وسنشرح القليل منها ان      شاء الله
   
   
   هناك دوالة رياضية و هناك دوال لها وظائف تقنية كالتحويل وبعض الوظائف الأخرى..
   هناك تركيبة(Structure-راجع فصل التركيبات) خاصة باللغة تسمى بMath وتحتوي      الكثير من الدوال ويمكن استخدامها بسهولة..
   مثال: حساب القيمة المطلقة لقيمة عددية(نعرف القيمة المطلقة بانها القيمة      الموجبة للمقدار سواء كان موجبا أو سالبا)
   أنشيء نموذج جديد وضع فيه أداة نص TextBox وأداة تسمية Label وأداة زر Button      واضبط الخصائص ليظهر بالشكل التالي:
   
   
   
   
   
   وفي اجراء Click للزر Button أدخل الكود التالي:
   
   
   
كود :
Label1.Text = Math.Abs(Integer.Parse(TextBox1.Text))
    ببساطة: استدعينا الدالة Abs من التركيبة Math والتي تقوم بحساب القيمة المطلقة      ولاحظ أننا استخدمنا الدالة Integer.Parse لتحويل محتوى النص من صورته النصية      إلى عددية
   
   مثال آخر:
   


Label1.Text = Math.Pow( 2 , 3 )
    وضعت هذا المثال لتوضيح أن الدالة لا تقتصر على وسيط واحد بل أكثر حسب المراد      وتقوم الدالة Pow بحساب القوة الثالثة للأساس 2 ويمكنك تغيير القيم حسب رغبتك.
   
   وبتطرق بسيط إلى الدوال التي تقوم بوظائف تقنية كالتحويل بنستعرض بعض الأمثلة:
   مثال: تحويل القيمة النصية إلى قيمة عددية
   كما رأينا في مثال حساب القيمة المطلقة فاننا قمنا بعملية تحويل من نص(مدخل      صندوق النص) إلى قيمة عددية لان الدالة Abs لا تتعامل مع نصوص بل أعداد وجرب      إزالة التحويل وسيظهر الخطأ.
   اذن ان اردنا التحويل من قيمة نصية لعددية يمكننا استخدام الدالة      Integer.Parse(String) وتقوم بتحويل النص الوسيط إلى قيمة عددية
   
   مثال آخر:تحويل القيمة العددية لنصية:
   هناك بعض الدوال التي لا تستطيع التعامل مع القيمة على صورتها العددية بل تحتاج      وسيط نصي فنقوم بتحويل الصورة العددية إلى صورتها النصية باستخدام الدالة  
   


كود :
[align=left]     Str(Number)
[/align]
    فهذه الدالة تستقبل وسيط عددي ويكون ناتجها صورة نصية
   
   بهذا نكون انتهينا من الدوال الموجودة في فيجوال بيسك دوت نت
   
   الآن ماذا اذا أردت صنع دالة خاصة مثلا تقوم بحساب مساحة دائرة...؟
   يمكنك بناء دالة باستخدام الكلمة المحجوزة Function كما وضحنا في بداية الدرس
   بداية الصورة الافتراضية للدالةو بما أن للدالة ناتج و قيمة فالافضل تحديد نوع      الدالة:
   


كود :
[align=left]     Function Fun_Name (Parameters) As Type
[/align]
    الآن سوف نسمي الدالة باسم CircleArea وعلينا تحديد الوسيطات اللازمة لعلمية      حساب المساحة وكما هو معروف لا يلزمنا سوى نصف قطر الدائرة وبالنسبة للقيمة ط      (PI) يمكننا استخدامها من خلال الثابت Math.PI
   تمعن في الكود التالي:
   
   


كود :
[align=left]     Function CircleArea(ByVal Radius As Integer) As Double
   Dim Area As Double
   Area = Math.PI * Math.Pow(Radius, 2)
   Return Area
   End Function
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As      System.EventArgs) Handles Button1.Click
   Label1.Text = CircleArea(Integer.Parse(TextBox1.Text))
   End Sub
[/align]
    الآن انظر معي:
   قمنا بصنع دالة سميناها CircleArea والتي تقوم بحساب مساحة الدائرة حسب نصف      قطرها المدخل
   وبعدها قمنا بتحديد الوسطيات وهي Radius نصف القطر
   والآن كما قلنا فان للدالة ناتج لها يمكن استخراجه من عمليات الدالة الداخلية      لكن كيف يمكن اعطاء هذه الدالة تلك القيمة بعد انتاجها داخل الدالة....
   يمكن ذلك باحدى طريقتين:
  • استخدام الكلمة المحجوزة Return
  • اسناد ناتج الدالة المطلوب إلى الدالة مباشرة
    توضيح:
   في المثال الاخير أردنا أن يكون ناتج الدالة هو المتغير Area ويمكن إعطاء قيمته      للدالة كالتالي:
   الاولى:
   استخدمنا الأمر Return واستخدمناه كالتالي:
           

   
   
كود :
Return Area
       
            ويقوم باعطاء قيمة Area لناتج الدالة
           
           الثانية:
           يمكننا استبدال الأمر Return بالاسناد المباشر للقيمة كمثال:
       
                           

           
           
كود :
CicleArea=Area
               
                   
                   أما بالنسبة لByVal و ByRef فيتم شرحهما بعد قليل
                   لكن ماذا ان اردت الخروج من الدالة عند الوصول لنتيجة معينة
                   يمكن ذلك بسهولة باستخدام الأمر Exit Funtion
                   مثال:
               
                                           

                   
                   
كود :
[align=left]                         [align=right]                             [align=left]                                 [align=right]                                     [align=left]                                         Function Fun_Name (Parameters) As String
                                       If X > 2 Then Exit Function
                                       End Function
[/align]
                                [/align]
                            [/align]
                        [/align]
                    [/align]
                   

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


كود :
[align=left]     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As      System.EventArgs) Handles Button1.Click
   End Sub
[/align]
    الشرح:
  • الكلمة المحجوزة Private تفيد أن الاجراء يمكن      استخدامه فقط داخل نموذج الحاضن فقط
  • الكلمة المحجوز Sub تفيد اننا نبدا بصنع اجراء      فرعي
  • Button1_Click هو اسم الاجراء
  • ما بين القوسين تمثل الوسيطات المرسلة للحدث
  • الآن Handle تفيد كيف يتم اجراء الحدث وهنا      ألحقناها ب Button1.Click وهنا نفيد الاجراء أن يتم تنفيذ الاجراء عند القيام      بالضغط على Button1
  • End Sub تفيد بانتهاء الاجراء
    الآن اصنع الاجراء الخاص بك بنفسك:
   بداية الصيغة العامة للاجراء الفرعي هي
   
        Sub
           

   
   
كود :
Sub_Name (Parameters)
   Statements
   End Sub
       
            والآن لنقوم بتصميم اجراء فرعي يقوم باغلاق النموذج الذي نمرره للاجراء
       
                           

           
           
كود :
Sub CloseForm(frm As Form)
           frm.Close()
           End Sub
   
    لكن كيف يمكن استدعاء هذا الحدث وتمرير الوسيطات له
   ضع زر Button جديد واضغط عليه ضغطا مزدوجا وقم يكتابة الكود التالي:
    رمز برمجي:

CloseForm(Me)
    هنا قمنا باستدعاء الاجراء CloseForm ومررنا له النموذج الحالي(Me)
   ويمكن أيضا استدعاء الاجراء بالطريقة التاليه باستخدام الكلمة المحجوزة Call
   مثال:
    رمز برمجي:

Call CloseForm(Me)
   
   الآن انتهينا من الدوال والاجراءات وبقت علينا قضية تتعلق بتمرير الوسيطات
   الارسال بالقيمة او الارسال بالمرجع
   
   أولا: الارسال بالقيمة باستخدام الكلمة المحجوزة ByVal
   هنا يتم تمرير المتغيرات دون تغيير القيمة الاصلية للمتغير وبالتالي يتم ارسال      نسخة جديدة من البيانات المرسلة في كل مرة تستدعي فيها الاجراء لذا فهي تستهلك      مزيدا من الوقت لكنها لا تؤثر على باقي أجزاء البرنامج لانها تقوم بارسال نسخة      جديدة من البيانات المرسلة.
   
   ثانيا:الارسال بالمرجع باستخدام الكلمة المحجوزة ByRef
   هنا يتم ارسال مؤشر للمتغير مما يمكنك بتغيير قيمة المتغير الاصلية وهنا لا يتم      انشاء نسخة جديدة من البيانات بل فقط يتم ارسال البيانات الاصلية وهنا تكون      العملية اسرع من الارسال بالقيمة
   
   بهذا نكون قد انتهينا ان شاء الله من الشرح لهذا الفصل وسوف اعرض مثالا يجمع      الكثير مما تم دراسته في الفصول السابقة.
   
   أولا :قم بفتح مشروع جديد من نوع Windows Appllication
   وأضف نموذج غير الاصلي وأيضا قم باضافة وحدة نمطية (Module) ويمكن استخدام      الModule في صناعة الاجراءات واستخدامها في كامل اجزاء المشروع
   
   ثانيا:سمي النموذج الاول بـ MainForm والثاني بـMsgForm
   واضف الأدوات الظاهرة بالشكل واضبط خصائصها كما هو واضح:
   
   
   
   
   
   
   
   
   
   
   في داخل الموديول أضف الكود التالي:
   


كود :
    Const PI As Double = 3.14
   
       Structure Circle
   
           Public Function CalculateArea(ByVal Radius As Integer) As Double
               Return (PI * Math.Pow(Radius, 2))
           End Function
   
           Public Function CalculateLength(ByVal Radius As Integer) As Double
               Return (PI * Radius * 2)
           End Function
   
           Public Sub ShowMsg(ByVal Text As String, ByVal Title As String)
   
               MsgForm.Label1.Text = Text
               MsgForm.Text = Title
               MsgForm.ShowDialog()
           End Sub
   
           Dim A As String
       End Structure
    في هذا الكود قمنا بتعريف ثابت اسميناه PI واسندنا اليه القيمة 3.14
   وقمنا ببناء تركيبة من نوع Structure واسميناها Circle ووضعنا فيها دالتين      واحدة تقوم بحساب محيط الدائرة والثانية تقوم بحساب مساحة الدائرة
   كما قمنا بصنع اجراء يقوم بعرض النموذج MsgForm من خلال الامر ShowDialog الذي      يقوم باظهار النموذج على شكل مربع حوار مثل مربعات الرسائل
   
   أما في نموذج MainForm فتمعن في الأكواد التالية داخل النموذج
   
   وكذلك نموذج الMsgForm
   


كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
     وقد وضعت لكم المثال كاملا بالمرفقات
أو من الرابط التالي
   
   http://www.4shared.com/rar/zxklLlvC/Example.html
   
   
   نتمنى ان تكونوا قد استمعتم معنا
   
   أبلغكم تحياتنا
   
   Lo2i و Mohammed Asaad
   انتظروا الدرس القادم

السلام عليكم شكرا على الشرح أخي الكريم هل أستطيع أن اطلب منك أن تساعدني في مشروعي لأني  مشروعي باستخدام البروسيجر و أجهل بعض الاشياء
لا إله إلا أنت سبحانك إني كنت من الظالمين
الرد
تم الشكر بواسطة: elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الفصل(9):مدخل الى الفئاتClasses - الجزء الأول B3dak Hbebe 5 1,994 30-05-17, 01:09 PM
آخر رد: ali hussein
  الفصل(5):صنع القرار...الجزء الأول-الجمل الشرطية Omar Mekkawy 4 2,082 10-08-13, 05:39 PM
آخر رد: Omar Mekkawy
  الفصل(3): التركيبات أنواعها واستخداماتها Omar Mekkawy 4 1,893 10-08-13, 05:32 PM
آخر رد: Omar Mekkawy
  الفصل (1) : الفيجوال بيسك دوت نت (لمحة تعريفية) Omar Mekkawy 2 1,672 27-07-13, 02:39 PM
آخر رد: green.grass52
  الفصل (0) : دورة تعلم معنا فيجوال بيسك دوت نيت Omar Mekkawy 7 2,247 18-07-13, 06:29 PM
آخر رد: el@nsary
  الفصل(16): مدخل لمسارات التنفيذ Threading B3dak Hbebe 3 1,725 27-04-13, 10:58 AM
آخر رد: خليل اسماعيل
  الفصل(15): الفئتان Stack و Queue B3dak Hbebe 2 1,494 27-04-13, 09:20 AM
آخر رد: خليل اسماعيل
  الفصل(12): Oop بالتفصيل...الجزء الثاني B3dak Hbebe 3 1,732 27-04-13, 09:16 AM
آخر رد: خليل اسماعيل
  الفصل (11) :oop بالتفصيل ..الجزء الاول Easy4ever 3 1,713 27-04-13, 09:08 AM
آخر رد: خليل اسماعيل
  الفصل(10):مدخل الى الفئات..الجزء الثاني B3dak Hbebe 2 1,422 27-04-13, 08:59 AM
آخر رد: خليل اسماعيل

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم