Home
Start
Add Bookmark
Facebook
Contact us
Setting
Info
بزودی
  V 3.5  
طراح و کد نویس : مهدی رضایی

تغیرات انجام شده در این ورژن :
- امکان جابجایی کاشی ها
- اضافه شدن تنظیمات
- اضافه شدن اپ بار
- اضافه شدن اطلاعات هر بلوک به صورت فارسی
- ویرایش و اضافه کردن اطلاعات جدید
- بالا بردن سرعت بارگیری صفحه تا 2 برابر و ...

OnlyDesign

Tuts , Web Design , Web Tools and ...

وارد شوید
Info
آموزش ویژوال بیسیک، ساخت کامپوننت

امروز هم برای اولین پستم، اینجا، آموزش ساخت یک Activex یا کامپوننت خیلی خیلی ساده رو که خودم ساختم میذارم، البته توی این آموزش فقط میخوام بگم که شما خودتون هم خیلی راحت میتونین با VB ، کامپوننت و Activex مورد نیازتون رو بسازین و هیچ ارزش دیگه ای نداره .

توی این تمرین ما قرار هست که یک به اصطلاح کنترل یا همون کامپوننت که ساعت رو به ما نشون میده و ما میتونیم در زمان اجرا با کلیک راست روی اون، رنگ پشت زمینه، نوع قلم و رنگ قلم رو تغییر بدیم، بسازیم.

برای شروع از پنجره New Project گزینه Activex Control رو انتخاب میکنیم و روی دکمه Open کلیک میکنیم.

همونجوری که میبینید یک فرم شبیه فرم Standard Project ولی بدون نوار عنوان باز میشه. ما در اینجا OCX ها رو میسازیم.

فرم رو انتخاب کنین و از پنجره Properties خصوصیت Name رو به TLabel تغییر بدین. همچنین از منوی Project>Project Properties رو انتخاب کنین و در سر برگ General قسمت Project Name رو به TimeLabel یا هر چیز دیگه تغییر بدین.

خب حالا میریم سراغ کنترل های مورد نیاز برای ساختن این کامپوننت که توی جدول زیر همراه با خصوصیات اونا نشون دادم.

نام کنترل خصوصیت Name سایر خصوصیات
Label Label1 Autosize=TrueCaption=Time “اختیاری”
Timer Timer1 Interval=10
Common Dialog CDialog1 ——————

نکته: برای وارد کردن کنترل Common Dialog به منوی Project>Components میریم و از پنجره باز شده و سربرگ Controls گزینه Microsoft Common Dialog Control 6.0 رو انتخاب میکنیم و OK میزنیم.

خب ما قبل از هر کاری چون میخوایم با کلیک راست کردن روی Label مربوط به ساعت، در زمان اجرا منوی Popup یا جهنده باز بشه و تغییر رنگ و غیره رو انجام بدیم، باید برای فرم یک منوی معمولی بسازیم. برای این کار به منوی Tool>Menu Editor میریم و مثل شکل اولین منو که منوی اصلی ما هست رو میسازیم و خصوصیت Visible اون رو غیر فعال میکنیم

سایر منوها رو هم به همین صورت میسازیم، با این تفاوت که باید زیر منوی منوی اصلیمون یعنی Popup باشن، که برای زیر منو کردن، زیر منوها رو انتخاب و مثل شکل روی دکمه مشخص شده یک بار کلیک کنین تا چند نقطه قبل از نوشته ضاهر بشه ( که نشون دهنده زیر منو هست )

توی جدول زیر منوها رو همراه با خصوصیاتشون نشون دادم ( که باید ساخته بشن )

نام منو Caption خصوصیت Name توضیحات
Popup mnupopup منوی اصلی ما هست که خصوصیت Visible اون غیر فعال هست.

Change BackColor

mnubackcolor زیر منو مربوط به تغییر رنگ.

L1 یک خط تیره، برای Caption یک خط تیره “-” میذاریم تا یک خط افقی زیرمنوی Change BackColor رو از بقیه منوها جدا کنه.
Change Font mnufont برای انتخاب قلم

 

Change Font Color mnufontcolor برای تغییر رنگ قلم

 

خب بعد از ساختن منوها میریم سراغ کدنویسی :

اول از همه کدهای مربوط به خود فرم و Label رو مینویسیم که با تغییر سایز فرم Label هم تغییر سایز بده. روی فرم دو بار کلیک کنین و کدهای زیر رو وارد کنین.

Private Sub UserControl_Initialize()
UserControl.Label1.Width = UserControl.Width
UserControl.Label1.Height = UserControl.Height
End Sub

در قسمت بالا و سمت راست پنجره کدنویسی ( قسمت مربوط به رویدادها ) از لیست کشویی، گزینه Resize رو انتخاب کنید و کدهای زیر رو وارد کنین.

Private Sub UserControl_Resize()
UserControl.Label1.Width = UserControl.Width
UserControl.Label1.Height = UserControl.Height
End Sub

خب تا اینجا کد مربوط به تغییر اندازه رو نوشتیم.

خب حالا ما کد مربوط به Pupup یا جهنده شدن منو رو مینویسیم. در قسمت رویداد Mouse Up مربوط به Label1 ، کدهای زیر رو وارد میکنیم.

Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
Call PopupMenu(mnupopup)
End If
End Sub

ما در اینجا از یک تابع به نام PopUpMenu استفاده کردیم که باعث میشه منوی ما به صورت Popup یا جهنده ظاهر بشه.

اگه به خط Call PopUpMenu (mnupopup) توجه کنین میبینید که نام منوی Popup “mnupopup” ( که قبلا ساختیم و اون رو از حالت Visible در آوردیم)، در قسمت آرگومان تابع PopUpMenu نوشتیم، در حقیقت این تابع زیر منوهای منوی اصلی رو به صورت Popup یا جهنده نشون میده.

حالا نوبت به کدنویسی برای سه حالت تغییر رنگ، نوع قلم و رنگ قلم میرسه.

اول برای تغییر رنگ پشت زمینه Label1 .

کدهای زیر رو برای زیرمنوی mnubackcolor وارد میکنیم، ( در قسمت بالا و سمت چپ پنجره کدنویسی از لیست کشویی گزینه mnubackcolor رو انتخاب کنید.)، کدهای زیر رو وارد کنید.

Private Sub mnubackcolor_Click()
CDialog1.Flags = cdlCCFullOpen
CDialog1.ShowColor
Label1.BackColor = CDialog1.Color
End Sub

توجه: CDialog1 نام کنترل Common Dialog هست که کادرهای محاوره ای مربوط به رنگ،قلم،چاپ،بازکردن و ذخیره کردن رو نشون میده.

خب نوبت به نوع قلم میرسه.

کدهای زیر رو برای mnufont وارد کنین.

Private Sub mnufont_Click()
CDialog1.Flags = cdlCFBoth
CDialog1.ShowFont
Label1.Font = CDialog1.FontName
Label1.FontBold = CDialog1.FontBold
Label1.FontItalic = CDialog1.FontItalic
Label1.FontSize = CDialog1.FontSize

End Sub

برای تغییر رنگ قلم هم کدهای زیر رو برای mnufontcolor وارد کنین.

Private Sub mnufontcolor_Click()
CDialog1.Flags = cdlCCFullOpen
CDialog1.ShowColor
Label1.ForeColor = CDialog1.Color
End Sub

در آخر هم روی کنترل Timer1 دوبار کلیک کنید و کد مربوط به نشون دادن زمان برای Label رو وارد کنین.

Private Sub Timer1_Timer()
Label1 = Time
End Sub

خب حالا اندازه فرم رو به مثل شکل زیر در بیارین، تا حجم زیادی رو از نظر سایز، بعد از کامپایل شدن روی فرم مقصد نگیره.

اینجا کار ساختن Activex ما تموم شد و میتونین اون رو کامپایل کنین.

از منوی File>Make TimeLabel.Ocx رو انتخاب کنین.

برای تمرین، خودتون یک منو اضافه کنین تا با کلیک روی اون توی Label تاریخ رو به ما نشون بده.

App