PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : روش ساختن اکتیوکس



~M*E*H*D*I~
2012/08/31, 15:45
با سلام خدمت دوستان

چند وقتیه خیلی تالار بی رمق و سوت و کور شده نمیدونم چرا بچه ها بی انگیزه شدن خلاصه گفتم خودم دس بکار شم حداقل یه موضوع جدید مطرح کنم:P


ابتدا مقدمه ای مطرح میکنم و بعد اگه عمری بود ادامه میدم:


ActiveX چیست؟

مایکروسافت از نگارش 4 به بعد ویژوال بیسیک تکنولوژی جدیدی به نام ActiveX یا OCX به جای VBX در آن گنجاند که با استقبال خوبی روبرو شد. ActiveX ابزاری است که شما میتوانید با آن به برنامه خود شیئی را اضافه کنید که از قبل تعریف شده است و دارای توانیی هایی باشد که زبان برنامه نویسی شما قادر به انجام آن نیست. مثلاً پخش فایل صوتی با پسوند خاص (مثل:OGG) که زیبان بیسیک نمیتواند این کار را انجام دهد.

~M*E*H*D*I~
2012/09/01, 08:59
ActiveX شامل چیست:

يك ActiveX خوب و كارامد باید دارای امکانات زیر باشد:
Fuction یا دستور قابل اجرا:


ACTIVEX.COMMAND
مشخصه یا Property:

ACTIVEX.FileName

رویداد یا Event (مثلا هنگام کلیک برروی چیزی کدی اجرا شود که کاربر به آن می دهد


ACTIVEX _Click

اینها تقریباً مهمترین اجزا هستند. اما می توان از اجزای دیگری مثل کلید عکس ویا حتی ActiveX دیگر در آن قرار داد.

~M*E*H*D*I~
2012/09/02, 08:18
برای ایجاد اکتیوکس باید از vb6 استفاده کنید در اینجا منظور از محیط vb محیط اکسل نیست بلکه محیط زبان VB هست

شروع کار:
وارد محیط Visual Basic شوید و در کادر اولی که باز میشود گزینه ActiveX Control را از سربرگ New دابل کلیک کنید.

درصورتی که کادر بازنشد از کلیدهای Ctrl+N استفاده کنید.
یک ActiveX جدید ایجاد شده است.

تصاویر مربوط رو در پیوست ببینید

مهمترین مشخصات یک ActiveX عبارتند از:

Name: نام کنترل در هنگام قرار دادن در برنامه. (معمولا به شکل Name1 میباشد).

Appearance: نوع نمایش آن که به دونوع سه بعدی و فلات قابل تنظیم است
.
AutoRedraw: این قسمت مربوط به این است که اشکالی مثل مربع یا متن هایی که با فرمان Print نوشته یا ایجاد شده اند با خارج شدن آن قسمت از فرم ازبین برند یا نه. (True = از بین نروند)

BackColor: رنگ پس زمینه کنترل

BackStyle: نوع کنترل که به دونوع شفاف و کدر تقسیم میشود. در صورت شفاف بودن فقط آبجکتها نمایش داده میشوند و خودکنترل به صورت شفاف یا Transparent نمایش داده میشود.

CanGetFocus: قابلیت فکوس داشتن. یعنی یک آبجکت محسوب شود و بافشردن کلید Tab فوکوس بگیرد.

Font: فونت پیشفرض آبجکتها و کنترل

FontTransparent: شفافیت و زیبایی فونت

ForeColor: رنگ رو. مثل کاملاتی که با دستور Print نوشته میشوند.

Height: ارتفاع یا طول کنترل

InvisibleAtRuntime: این گزینه اگر True باشد در هنگام اجرا قابلیتهایی مثل Drag و Drop رو از دست میده.

KeyPreview : این گزینه به شما میگوید که وقتی کلیدی فشرده شد اول به فرم انتقال داده شود بعد به آبجکت.

MouseIcon: آیکن ماوس کنترل

MousePointer: نشانه گرد ماوس. مثل Hourglass که برابر است با 11

Picture: عکس پس زمینه کنترل

PropertyPage: فعال بودن با نبودن صفحاتی مثل Font و ...

Public: قابلیت قرار گرفتن روی فرم. (همیشه باید True باشد)

RightToLeft: طریقه نوشتن کنترل. مثلا در دستور Print متن از سمت راست کنترل نوشه میشود

ScaleMode: تعیین نوع واحد ها مثل تویپ پیکسل و ...

ToolboxPicture: عکسی که در هنگامی که در لیست کنترل ها قرار گیرد

Width: عرض و پهنای کنترل

~M*E*H*D*I~
2012/09/03, 08:23
اضافه کردن Function و Sub به ActiveX

فرق بین Function و Sub:

Sub و Function هر دو - بوسیله یک سری متغییر که از کاربر میگیرند – دستوراتی را انجام میدهند. با این تفاوت که Sub فقط انجام میدهد. اما Function علاوه بر آن که دستورات را انجام میدهد نقش متغیر را نیز دارد و به خود یک متغیر نسبت میدهد.
برای اضافه کردن Function به کنترل:
در قسمت General Declaration کد زیر را اضافه کنید:


Public Function FuncName(ByVal Var1 As String, ByVal Var2 As Integer) As String

End Function

به جاي FuncName نام Function را بنويسيد. به جاي Var1 و Var2 نام متغير دلخواه را تايپ کنید. برای اضافه کردن متغیر هایی دیگر مانند نمونه کد بالا عمل کنید.
در صورتی که متغیر اختیاری باشد و نسبت دادن به آن اجباری نباشد از نمونه زیر استفاده کنید.


Public Function FuncName(ByVal Optional Var1 As String = "Text", ByVal Var2 As Integer) _ As String

End Function
در نمونه بالا Var1 اختیاری است و در صورت وارد نکردن به Text تبدیل میشود.
در بین Public Function … و End Function میتوان دستورات را نوشت.
نمونه زیر از کاربر دو متغیر را میگیرد و سپس جمع آن دو را به خود نسبت میدهد.


Public Function Add(ByVal Number1 As String, ByVal Number2 As Integer) As Integer
Dim Addition As Integer
Addition = Number1 + Number2
Add = Addition
End Function

در اجرای این Function این چنین مینویسیم:


MsgBox UserControl1.Add(12, 11)

برای ایجاد یک Sub دقیقا مانند Function عمل میکنیم. با این تفاوت که دیگر بعد از بستن پرانتز آخر نمیتوان نوع متغیر را مشخص نمود. مانند:


Public Sub Add(ByVal Number1 As String, ByVal Number2 As Integer)
Dim Addition As Integer
Addition = Number1 + Number2
MsgBox Addition
End Sub

~M*E*H*D*I~
2012/09/06, 18:55
اضافه کردن Property به ActiveX

برای اضافه کردن Property به کنترل دو راه وجود دارد.
راه اول:
در قسمت General Declaration کد زیر را اضافه کنید:

Public Text As String
اما این روش خوبی نیست. دلیلش رو باروش دوم میشه فهمید.

راه دوم:
این راه خیلی سخت تر از روش اول هست. از دو قسمت Get و Let و گاهی اوقات نیز از Set نیز دراین
تشکیل میشود.

در این نمونه یک Label برروی فرم موجود است که با این Property میتوان متن آن را تغییر داد.
ابتدا یک Label به کنترل اضافه کنید.
Get
نخست باید یک متغیر در General Declaration تعریف کرد.

Dim varText As String
بعد کد زیر را اضافه کنید.
Public Property Get Text() As String
Text = Label1.Caption
End Property
Property Get هنگامی اجرا میشود گه شما بخواهید مقدار مورد نظر (در اینجا Text) را بگیرید. مثلا:

MsgBox UserControl1.Text
Let
کد زیر را اضافه کنید.

Public Property Let Text(New_Text As String)
Label1.Caption = New_Text
PropertyChanged "Text"
End Property
Property Let هنگامي اجرا ميشوى كه شما بخواهيد مقدار مورد نظر (در اینجا Text) را تغییر دهید.
Propery Set نیز مانند Property Set میماند ام معمولا برای فونت ها به جای Let استفاده میشود.
اضافه کردن Event به کنترل
Event مجموعه دستوراتی هستند که کاربر آن ها را در هنگام اجرای برنامه تعریف میکند. اما زمان اجرای آن دست برنامه نویس است.
نمونه: در این نمونه یک Shape وجود دارد. یک Property رنگ نیز موجود است که با تغییر آن رنگ Shape نیز تغییر میکند. با تغییر رنگ Shape دستوراتی که کابر در هنگام اجرا میشود.

ایتدا یک Shape به کنترل اضافه کنید و حالت BackStyle آن را به Opaque تغییر دهید.
طبق تصویر پیوست

اول یک رویداد در General Declaration با نام Change ایجاد میکنیم.

Public Event Change(OldColor As Long, NewColor As Long)
بعد یک متغیر برای رنگ تعریف می کنیم.


Dim varcolor as long

اکنون یک Property جدید با نام BackColor ایجاد میکنیم.


Public Property Get BackColor() As OLE_COLOR
BackColor = Shape1.BackColor
End Property
Public Property Let BackColor(New_BackColor As OLE_COLOR)
Dim S As Long
S = Shape1.BackColor
Shape1.BackColor = New_BackColor
RaiseEvent Change(S, New_BackColor)
PropertyChanged "BackColor"
End Property





فرمان RaiseEvent برای اجرای دستورات یک Event است که این فرامین را کاربر در هنگام Runtime تعریف میکند.

~M*E*H*D*I~
2012/09/09, 08:57
مشخصات متغیرها
برای تغییر مشخصات متغیرها از منوی Tools گزینه Procedure Attributes را انتخاب کنید.
از قسمت Name نام متغیر را انتخاب کنید و در قسمت Description توضیحی در مورد آن بنویسید.

ایجاد Type جدید

Type یا نوع چیزهایی هستند که کاربر را در انتخاب مقدار متغییرها در هنگام اجرای یک Sub و یا ... راهنمایی میکنند.
برای ایجاد یک Type جدید ابتدا در قسمت General Declaration کد زیر را تایپ کنید.

Public Type Color
Red As Long
Green As Long
Yellow As Long
Black As Long
White As Long
End Type
به جای Color میتوان نام مورد نظر را جایگزین کرد. در بین Private Type و End Type میتوان متغیر و نوع آن را مشخص کرد. ىر حال حاضر يك Type جدید ایجاد شده است.
اکنون باید متغیرها را مقداردهی کرد.

Const Red = 255
Const Green = 65280
Const Yellow = 65535
Const blcak = 0
Const White= 16777215

~M*E*H*D*I~
2012/09/12, 13:37
اضافه کردن Property Page

Property Page صفحاتي مانند فرم هستند که میتوان درون آن ها نیز آبجکت و ... قرار داد. برای اضافه کردن در پنجره Project در بالا سمت راست رو Project موردنظر کلیک راست کرده و از زیر مجموعه Add گزینه Property Page را انتخاب کنید.

از کادر بازشده Open را کلیک کنید.
پنجره Property خود را مانند زیر آرایش کنید:

سپس کد زیر را برای این صفحه وارد کنید:


Private Sub Combo1_Click()
Label1.FontName = Combo1.Text
End Sub

Private Sub PropertyPage_Initialize()
For i = 0 To Combo1.ListCount - 1
Combo1.RemoveItem 0
Next i
For i = 0 To Screen.FontCount - 1
Combo1.AddItem Screen.Fonts(i)
Next i
End Sub


از مشخصات کنترل گزینه PropertyPages را انتخاب كرده و گزینه PropertyPage1 را فعال نمایید و کلید OK را کلیک کنید.

اکنون هنگام اجرا در مشخصات کنترل برنامه خود گزینه ای بانام (Custom) وجود دارد که باکلیک کزدن برروی آن پنجره مورد نظر نمایش داده میشود.

~M*E*H*D*I~
2012/09/13, 11:49
یک ترفند جالب
ممکن است شما بخواهید در قسمت Properties کنترل خود یک مورد با نام (About) نیز وجود داشته باشد. برای این کار:

1- از منوی Project گزینه Add Form را کلیک کرده و از کادر گزینه About Dialog را دابل کلیک کنید.

2- سپس به کنترل برگردید و یک Sub به آن اضافه کنید. مانند زیر


Public Sub ShowAboutBox ()
frmAbout.Show 1
End Sub
از منوی Tools گزینه Procedure Attributes را انتخاب کنید.
از قسمت Name گزینه ShowAboutBox را انتخاب نمایید.
گزینه Advanced >> را کلیک کنید.
از قسمت Procedure ID گزینه AboutBox را انتخاب کنید.
کلید OK را کلیک کنید.


این آخرین تایپیک در این زمینه بود امیدوارم برای دوستان مفید واقع بشه