PDA

View Full Version : حرفه ای: توضیح قسمت Add Procedure در وی بی (ByVal, ByRef | Public, Private | Sub, Function, Event, Property)



kitcat_m18
شنبه 13 فروردین 1390, 12:09 عصر
با سلام و تبریک سال نو خدمت تمامی برنامه نیوسان عزیز،

همانطور که مستحضر هستید می تونید در قسمت Tools >>> Add Procedure روال های(اگه واژه رو درست نگفتم اصلاح بفرمایید) مورد نیاز خود را بسازید.



1- Public یا عمومی: اگر متغیر به صورت عمومی(Public) تعریف شود در تمام قسمت های برنامه قابل استفاده است

مثال:
اگر متغیر Public Mohsen as Integer زیر را در قسمت Form1- General تعریف کنید در تمامی فرم های برنامه به آن دسترسی دارید.

طریقه فراخوانی:

MsgBox Form1.Mohsen



Private -2 یا محلی: اگر متغیر به صورت محلی(Private) تعریف شود فقط در قسمتی که تعریف شده است قابل استفاده است

مثال:
اگر متغیر Private Mohsen as Integer زیر را در قسمت Form1- General تعریف کنید فقط در سطح همان فرم به آن متغیر دسترسی دارید.

طریقه فراخوانی:

MsgBox Mohsen

Sub -3 دارای آرگومان خروجی نمی باشد و برای اعمالی که نیاز به نتیجه برگشتی ندارند استفاده می شود.

مثال:


Public Sub Empty_All_TXT ()
Text1.Text=Empty
Text2.Text=Empty
Text3.Text=Empty
Text4.Text=Empty
End Sub




طریقه فراخوانی:

Call Empty_All_TXT


Function -4: دارای آرگوانهای خروجی می باشد که توسط کاربر تعریف می گردند و دارای نتیجه ی برگشتی می باشد

مثال:



Public Function Sum(ByVal A As Integer, ByVal B As Integer)
Sum = A + B
MsgBox Sum
End Function



طریقه ی فراخوانی:

Call Sum(2, 4)

که نتیجه ی جمع 2 عدد وارد شده یعنی 2 و 4 را به ما درون یک پیغام نشان می دهد.


حالا یکی از اساتید لطف کنند در رابطه با موارد زیر برای بنده توضیحاتی را همراه با مثال درج نمایند

1- Event

Property -2

Byval -3

ByRef -4



با تشکر.:لبخندساده:

M.T.P
یک شنبه 14 فروردین 1390, 17:32 عصر
با تشکر از اطلاعات مفیدتون

البته موارد زیر معلومات شخصی بنده هست.

Event:
یک روال یا یک تابع در یک کلاس هست که تحت شرایط تعریف شده در کلاس مربوطه اجرا می شود.

Property:
متغیرها و اجزای یک کلاس هستند ، که قابل تغییر و یا Readonly هستند. مثال: (Enabled یا Visible)

ByVal:
مقداری را درخواست میکند و بدون تغییر برگشت میدهد.

مثال:


Private Sub Command1_Click()
Welcome "Welcome dear user"
End Sub

Sub Welcome(ByVal StrText As String)
MsgBox StrText
End Sub

ByRef:
مقداری را درخواست میکند و با تغییر برگشت میدهد.

مثال:


Private Sub Command1_Click()
Dim Salary As Long
Salary = 5000
MySalary Salary
MsgBox Salary
End Sub

Sub MySalary(ByRef Salary As Long)
Salary = Salary + 10000
End Sub

returnx
یک شنبه 14 فروردین 1390, 19:10 عصر
من در پست قبلم براتون کامل با مثال توضیح داده بودم که یک جا اشتباه کرده بودم مجبور شدم پستم رو حذف کنم اما همین پست جناب M.T.P رو کامل می کنم...

ByVal:
مقداری را درخواست میکند و بدون تغییر برگشت میدهد.

درسته اما باید بدونیم که در پارامتر های Byval که مخففBy Value هست مقدار متغیر مستقیما(نه ادرس متغیر) به تابع ارسال می شود و تغییری نمی کند ...
برای ارسال مقدار null از Byval &0 استفاده می شود...
ByRef :ByRef مخفف ByRefrence یا همون با ارجا هست، در این نوع پارامتر ها آدرس 32 بیتی محل ذخیره متغیر برای تابع ارسال می شود و مقدار آن توسط تابع قابل تغییر بوده...
VB6 به طور پیشفرض پارامتر ها را به صورت Byref ارسال می کند...

kitcat_m18
دوشنبه 15 فروردین 1390, 00:13 صبح
ms2222 (http://barnamenevis.org/member.php?141489-ms2222) عزیز،

میشه یه کم بیشتر و با مثال این مسئله رو برام باز کنی؟:متفکر:

returnx
دوشنبه 15 فروردین 1390, 17:04 عصر
68295یک بار دیگه واست کامل نوشتم اما زمانی که خواستم برات ارسال کنم IE اررور داد، دیگه نمی تونم از اول همه رو بنویسم چند صفحه اول اینPDF که ضمیه کردم رو مطالعه کن بهت کمک میکنه...