PDA

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