PDA

View Full Version : ساعت آنالوگ به عنوان UserControl



Naser54
یک شنبه 05 مهر 1383, 12:00 عصر
مدتها بود که می‌خواستم یه ساعت آنالوگ قشنگ با دات نت بنویسم. اول یه سورس گرفتم که این کار رو کرده بود ولی "قشنگ" نبود. اونو دستکاری کردم و بعداً کامل روش رسم رو عوض کردم و محصول نهایی شد این:


http://img.villagephotos.com/p/2004-9/837482/AnalogClock.JPG

کل Solution رو هم به صورت زیپ شده گذاشتم. اگه کد رو نگاه کنید، می‌بینید که خیلی کار ریاضی برده. تمام ویژگیها رو هم به صورت Property گذاشتم. از مهمترین بخشهای کد، سه خط زیر هستند که از چشمک زدن تصویر جلوگیری میکنند.



Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.DoubleBuffer, True)

این سه خط باعث می‌شوند که برای هربار رسم به جای پاک کردن محتویات قبلی و رسم محتویات جدید ( که باعث چشمک "Flicker" می‌شود) ، این محتویات روی تصویر قبلی رسم شوند.
تمام مشخصات از قبیل رنگ عقربه‌ها، رنگ زمینه، رنگ اعداد و... نیز قابل تغییر هستند.

موفق باشید

sh
یک شنبه 05 مهر 1383, 17:24 عصر
:flower:

ساران سافت
دوشنبه 06 مهر 1383, 09:01 صبح
:wink:
با سلام:
1-آقا جالب بود ولی چطوری می توانم از آن در پروژه هایم استفاده کنم؟
2-چطوری می شود قدری عقربه ها را کلفت تر کرد تا در اندازه های کوچک مثل 1.5*1.5 سانتیمتر بهتر دیده شوند. :roll:

Naser54
سه شنبه 07 مهر 1383, 08:15 صبح
برای تغییر پهنای عقربه‌ها سه خط زیر در فایل ClockControl.vb را عوض کنید:


HW = 48
MW = 34
SW = 14

HW عرض عقربه ساعت‌شمار، MW دقیقه‌شمار و SW ثانیه‌شمار هستند.
یه راه خوب استفاده از این کنترل DLL کردن اون هست.

موفق باشید.

ساران سافت
سه شنبه 07 مهر 1383, 09:47 صبح
ممنون :wink:

احمد سامعی
پنج شنبه 19 بهمن 1385, 20:22 عصر
مدتها بود که .....


http://img.villagephotos.com/p/2004-9/837482/AnalogClock.JPG



ببخشید استاد اما این لینک زیادی قدیمی شده و سرور ظاهرا پاکش کرده اگر می شه یک لینک جدیدی چیزی یا ایمیل بزنید منون می شم

پایدار باشید.

sohrab o
جمعه 20 بهمن 1385, 15:51 عصر
مهندس اینکه بازش نمیکنه
یه لینکه دیگه بزار

titbasoft
جمعه 20 بهمن 1385, 17:45 عصر
یکشنبه 05 مهر 1383

این تاپیک مربوط به 2 سال پیشه و کاربر مورد نظر دیگه فعال نیست