|
آموزش برنامه نویسی
|
||
|
آموزش ویژوال بیسیک و ... برای دیدن تمامی مطالب به آرشیو ماهانه مراجعه کنید |
برای شروع از پنجره New Project گزینه Activex Control رو انتخاب میکنیم و روی دکمه Open کلیک میکنیم.
همونجوری که میبینید یک فرم شبیه فرم Standard Project ولی بدون نوار عنوان باز میشه. ما در اینجا OCX ها رو میسازیم.
فرم رو انتخاب کنین و از پنجره Properties خصوصیت Name رو به TLabel تغییر بدین. همچنین از منوی Project>Project Properties رو انتخاب کنین و در سر برگ General قسمت Project Name رو به TimeLabel یا هر چیز دیگه تغییر بدین.
خب حالا میریم سراغ کنترل های مورد نیاز برای ساختن این کامپوننت که توی جدول زیر همراه با خصوصیات اونا نشون دادم.
Autosize=True Caption=Time "اختیاری"
نام کنترل
خصوصیت Name
سایر خصوصیات
Label
Label1
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 باشن، که برای زیر منو کردن، زیر منوها رو انتخاب و مثل شکل روی دکمه مشخص شده یک بار کلیک کنین تا چند نقطه قبل از نوشته ضاهر بشه ( که نشون دهنده زیر منو هست )

توی جدول زیر منوها رو همراه با خصوصیاتشون نشون دادم ( که باید ساخته بشن )
Change BackColor -
نام منو Caption
خصوصیت Name
توضیحات
Popup
mnupopup
منوی اصلی ما هست که خصوصیت Visible اون غیر فعال هست.
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 و غیره
تا بعد خدانگهدار.
|
|