تبليغاتX
Iranian Technology
 
آموزش برنامه نویسی
 
 
آموزش ویژوال بیسیک و ... برای دیدن تمامی مطالب به آرشیو ماهانه مراجعه کنید
 

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

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

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

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

نام کنترل خصوصیت Name سایر خصوصیات
Label Label1

Autosize=True

Caption=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 تاریخ رو به ما نشون بده.

برای بهتر شدن وبلاگ نظر رو فراموش نکنین.

به وبلاگ من هم سر بزنین:  آموزش فتوشاپ، فلش، مایا، VB و غیره

تا بعد خدانگهدار.

 |+| نوشته شده در  یکشنبه بیست و یکم مرداد 1386ساعت 0:25  توسط حسین  | 
 
  بالا  

Free Counter