View Full Version : ساختن OCX
mr_esmaily
سه شنبه 01 مهر 1382, 15:32 عصر
من می خوام یک OCX بسازم که هم متد و هم پروپرتی داشته باشه البته می دونم چه جوری براش پروپرتی بنویسم ولی نمی دونم چه جوری براش یک متد تعریف کنم! :cry:
موفق و پیروز باشید 8)
Abbas Arizi
سه شنبه 01 مهر 1382, 16:29 عصر
همون توابع معمولی که همه جا مینویسی رو اینجام (توی UserControl) بنویس.
S.Azish
سه شنبه 01 مهر 1382, 16:31 عصر
هر شیئ میتونه دارای سه عضو اصلی باشه
1. خصوصیت یا Property
2. دستور یا Method
3. رویداد یا Event
برای ساخت هر کدوم اونها راههای مختلفی هست که بستگی به نوع استفاده شما داره
1. Property
استفاده از یک متغیری که به صورت Public تعریف بشه که به این روش Lazy Way گفته میشه. خوبی اون راحتی دست کردنش هست و بدی اون اینه که نمیتونید کنترل کنید خصوصیت شما ReadOnly یا WriteOnly باشه یا در موقع Set یا Get کردن عمل دیگه ای هم انجام بده.
'VB and VB.Net
Public Caption As String
استفاده از Property Structure
در این روش که روش متداول درست کردن یک خصوصیت هست نیاز به کد نویسی بیشتر هست ولی کنترل روی خصوصیت هم بیشتر هست
'VB
Option Explicit
Private m_caption As String
Public Property Get Caption() As String
Caption = m_caption
End Property
Public Property Let Caption(ByVal vNewValue As String)
m_caption = vNewValue
End Property
'VB.Net
Private m_caption As String
Public Property Caption() As String
Get
Return m_caption
End Get
Set(ByVal Value As String)
m_caption = Value
End Set
End Property
2. Methods
برای ساخت یک Method میتونید از Sub یا Function استفاده کنید. اگر Method مقدار برگشتی داره از Function در غیر این صورت از Sub
'VB
Public Sub DoSomething_Sub()
'
'Write your code here
'
End Sub
Public Function DoSomething_Function() As String
'
'Write your code here
DoSomething_Function = "Test"
'
End Function
'VB.Net
Public Sub DoSomething_Sub()
'
'Write your code here
'
End Sub
Public Function DoSomething_Function() As String
'
'Write your code here
Return "Test"
'
End Function
3. Events
با استفاده از Event ها شما وضعیت شیئ رو گزارش میدید. یکبار باید رویداد رو تعریف کرد و یک بار باید اونو اجرا کرد
'VB and VB.Net
Public Event AfterDoSomething()
Public Sub DoSomething_Sub()
'
'Write your code here
RaiseEvent AfterDoSomething
'
End Sub
نمونه Object ها یا ActiveX های زیادی هستن که میتونن کمکتون کنن.
mr_esmaily
سه شنبه 01 مهر 1382, 16:36 عصر
از هر دوتون ممنون! :oops:
mr_esmaily
سه شنبه 01 مهر 1382, 17:09 عصر
بازم نشد! :cry:
اگه میشه یک مثال که هر سه (متد و...) در آن باشد یا بفرستید یا بزنید :oops:
با تشکر قبلی :wink:
S.Azish
سه شنبه 01 مهر 1382, 17:33 عصر
Option Explicit
Public Event AfterSettingTest(ByVal Value As String)
Private m_Test As String
Public Property Get Test() As String
Test = m_Test
End Property
Public Property Let Test(ByVal vNewValue As String)
'
m_Test = vNewValue
RaiseEvent AfterSettingTest(m_Test)
'
End Property
Public Sub DrawText()
'
MsgBox m_Test
'
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.