PDA

View Full Version : سوال راجع به خصوصیاتی مثل Color برای User Control



arenaw
شنبه 10 تیر 1391, 17:10 عصر
سلام
user control هایی مثل لیبل رو وقتی هنگام طراحی میخواهیم خصوصیاتی مثل color اونا رو تغییر بدیم میبینیم که میتونیم از جعبه رنگها براشون رنگ انتخاب کنیم.
درسته که میشه color رو توی نوع long نگه داشت ، ولی اگه بخوام همینجوری که گفتم بشه چه کار کنم؟
نوع های دیگه ای هم مثل SystemColorConstants و ColorConstants هم هست، ولی اینجوری نیستن)

Property Let ForeColor(New_Color As Long)

as Long ?


همینطور خصوصیات Appearance , BorderStyle و ...
(برای اینها میشه خودمون Enum تعریف کنیم، ولی خود ویبی چجوری توی Appearance گزینه 3D داره؟ مگه میشه یه متغیر (یا هرچی که اسمش هست) داخل Enum اولش با عدد شروع بشه؟)

محسن واژدی
شنبه 10 تیر 1391, 17:40 عصر
در مورد color نوع آن را ole_color قرار می دهیم:
Property Let ForeColor(New_Color As OLE_COLOR)
'commands
End Property

یا BorderStyle
Enum BorderStyleConstants
bsNone
[bsFixed Single]
End Enum

Property Let BorderStyle(bs As BorderStyleConstants)
'commands
End Property

به ترتیب برای سایر خصوصیت ها به همینصورت اگر لیست ثابت های آن ها در دسترس نبود، لیست enumهای مورد نیاز را ایجاد و به property اختصاص میدهیم،

برای تصاویر خاصیتی از نوع Picture، فونت از نوع Font یا stdFont و ...

خاصیت Get و Set را هم با اندکی تغییر از همین نوع ایجاد میکنم

موفق باشید

arenaw
شنبه 10 تیر 1391, 17:45 عصر
خیلی ممنون مشکلم راجع به color حل شد
ولی همچنان موندم چجوری خود ویبی توی Appearance گزینه 3d داره؟
تو اسم متغیر یا ... که نمیشه اولش از عدد استفاده کرد؟
بعد یعنی نمیشه از همون enum ای که خود ویبی واسه appearance درست کرده استفاده کنیم؟ ویبی که اکثر اینارو قابل استفاده گذاشته (مثل VbDayOfWeek)

محسن واژدی
شنبه 10 تیر 1391, 17:54 عصر
چجوری خود ویبی توی Appearance گزینه 3d داره؟
تو اسم متغیر یا ... که نمیشه اولش از عدد استفاده کرد؟ کارکترهایی مانند اعداد و ... نامعتبر هستند اما برای بکارگیری آنها در Enumها همچنین اگر عضو enum ما حاوی کاراکتر فاصله باشد آنرا مابین دو کروشه قرار میدهیم، نمونه زیر را بررسی کنید:
Enum exm
[%100]
[%50]
[0]
[3D]
[1 + 2]
End Enum
Dim exm_x As exm

Private Sub Command1_Click()
exm_x = [1 + 2] Or [%100] Or [%50]
End Sub


موفق باشید