موضوع : روال
روال يا همون sub
قبلا يه نموره راجع به روال گفتم بس مستقيم بريم سر تعريف و شكل كلي
ايشالا براي درك بهتر مثال هاي زيادي ميزنيم
شكل كلي :
کد:
[Private/Public] Sub SubName([اسامی آرگومان ها و نوع آنها])
لیست دستورات vb
End Sub
تذکرات:
1. نامگذاری رویه ها نیز همانند متغییرهاست.
2. رویه ممکن است یک یا چند کار را انجام دهد ولی برعکس تابع چیزی در نام آن قرار نمی گیرد.
3. از توابع می توان درمحاسبات عددی مثل یک متغییر استفاده کرد ولی رویه چنین نیست.
4. رویه ها به دو صورت فراخوانی می شوند
الف) با استفاده از نام رویه ها:
مثلا اگر رویه زیر تعریف شده باشد
کد:
Sub Show_results()
.
.
.
End Sub
فراخوانی آن به این صورت می باشد:
و یا اگر رویه زیر تعریف شده باشد
کد:
Sub GetInfo1(Name As String, StNo As Integer)
.
.
.
End Sub
فراخوانی آن به این صورت می باشد:
نمی توان در این روش از پرانتز در فراخوانی استفاده کرد.
ب) با استفاده از دستور Call:
فراخوانی رویه های بالا با دستور call به صورت زیر است
کد:
Call Show_results
Call GetInfo1("Sina", 2546)
اگر از call استفاده می کنید پرانتز فراموش نشود.
5. بقیه نکات رویه همانند نکات توابع می باشد.
انواع پارامتر ها:
پارامتر های رویه ها و توابع دو گونه اند:
الف) مقدار ( ByVal )
ب) ارجاع ( ByRef)
پارامتر های مقدار فقط مقادیر را به زیر برنامه تحویل می دهند و اگر مقدار آن پارامتر در زیر برنامه تغییر یابد مقادیر جدید در آن پارامتر کپی نمی شود.
ولی در پارامتر های ارجاع تبادل اطلاعات دو طرفه است یعنی اگر مقدار آن پارامتر در زیر برنامه تغییر یابد از این به بعد در برنامه اصلی نیز مقادیرجدید مورد استفاده قرار می گیرند.
به علت سنگینی این مبحث و کاربرد کم آن در برنامه های ساده از توضیح بیشتر پرهیز می شود بنابر این هر جا لازم شد به توضیح بیشترمی پردازم. فقط طرز تعریف را بدانید.
مثال:
کد:
Sub Pro(ByVal a As Integer, ByRef b As Integer)
.
.
.
End Sub[/code
متغییر a از نوع مقدار و متغییر b از نوع ارجاع تعریف شده اند.
از امکانات جالب vb استفاده از آرگومان های اختیاری در برنامه است.
یعنی می توان هنگام فراخوانی به آنها مقدار نداد ، در این صورت مقدار آن آرگومان برابر مقادیر پیش فرض نوعشان می باشد.
برای تعریف یک آرگومان به صورت اختیاری از کلمه کلیدی Optional در پشت آن استفاده می شود.
مثال:
کد:
Sub Pro(Optional a As Boolean)
.
.
.
End Sub
فراخوانی رویه بالا:
کد:
Call Pro(True)
یا
Call Pro
بنابراین مقدار a در فراخوانی دوم برابر False خواهد بود.
هنگام تعریف آرگومان اختیاری می توان به آن مقدار اولیه نیز داد بنابراین اگر هنگام فراخوانی به آن مقدار ندهیم ، مقدارش برابر همان مقدار اولیه ما خواهد بود.
مثال:
کد:
Sub Pro1(Optional Num As Integer = 5)
.
.
.
End Sub
موضوع بعدي : توابع بازگشتي
--------------
سينا