PDA

View Full Version : سوال: تغییر شکل آیکون یک دکمه با عبور موس



foo0z0ool
پنج شنبه 16 آذر 1391, 13:29 عصر
سلام

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

Abbas Amiri
پنج شنبه 16 آذر 1391, 14:07 عصر
با سلام از رویداد MousMove کنترل مورد نظر جهت اینکار میتوانید استفاده کنید . ام چون کنترلهای اکسس رویدادی جهت خروج از روی کنترلها ندارند باید در روال MousMoveمحیطی کنترل بروی آن قرار دارد هم ایکن اصلی کنترل را قرار داد
کمی ریزه کاری دارد تا تصویر پرش نداشته باشد چون مادامی که ماوس بروی این آبجکتها حرکت میکند مدام کدها اجرا میشوند .

RESMAILY
جمعه 17 آذر 1391, 16:25 عصر
به نام خدا
با سلام . با اجازه اقاي اميري اين برنامه را بررسي كنيد خيلي چيزها منجمله خواسته شما درآن موجود است. منبع آن هم ذكر شده است . مي توانيد تماس بگيريد

foo0z0ool
جمعه 17 آذر 1391, 16:47 عصر
داداشم منظورم این نبود که شکل موس عوض بشه شکل آیکون زیر موس عوض بشه

RESMAILY
شنبه 18 آذر 1391, 07:22 صبح
به نام خدا
با سلام. مي بخشيد كه متوجه نشدم. اما راه كار در همين برنامه وجود دارد.pictureType آيكون ها را بصورت link در نظر بگيريد . البته حجم آيكون بايد حتي الامكان كم باشد تا بقول آقاي اميري لرزش و پرش نداشته باشد. فكر كنم يك نمونه ديگر دارم. اگر پيدا كردم برايتان مي گذارم.

foo0z0ool
شنبه 18 آذر 1391, 09:55 صبح
به نام خدا
با سلام. مي بخشيد كه متوجه نشدم. اما راه كار در همين برنامه وجود دارد.pictureType آيكون ها را بصورت link در نظر بگيريد . البته حجم آيكون بايد حتي الامكان كم باشد تا بقول آقاي اميري لرزش و پرش نداشته باشد. فكر كنم يك نمونه ديگر دارم. اگر پيدا كردم برايتان مي گذارم.


ممنونم داداشم. حجم آیکونهای من بیش از 3 تا 5 کیلو بایت نیست من استاد کم کردن حجم هستم

Abbas Amiri
شنبه 18 آذر 1391, 20:26 عصر
به نام خدا
با سلام. مي بخشيد كه متوجه نشدم. اما راه كار در همين برنامه وجود دارد.pictureType آيكون ها را بصورت link در نظر بگيريد . البته حجم آيكون بايد حتي الامكان كم باشد تا بقول آقاي اميري لرزش و پرش نداشته باشد. فكر كنم يك نمونه ديگر دارم. اگر پيدا كردم برايتان مي گذارم.
با سلام خدمت آقای اسماعیلی عزیز
محض اطلاع دوستانی که به این تاپیک سر زده اند ومتوجه چیزی نشده اند وهمچنین باتوجه به آنچه در پست2 مرقوم شده الزاما بایستی پس از خارج شدن از روی کنترل در رویداد MouseMove محیط ، آدرس تصویر اصلی منسوب شود
فرض کنیم کنترل مورد بحث در FormFooter است


Private Sub cmdClose_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdClose.Picture = strOnOverPic
End Sub

Private Sub FormFooter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdClose.Picture = strOnExitPic
End Sub

Private Sub Detail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdClose.Picture = strOnExitPic
End Sub



ازآنجا که ممکن است موس بسرعت به محیط Detail کشیده شود ، ممکن است رویداد MouseMove فرم فوتر تحریک نشود بنابر این در قسمت دیتیل هم این کد گنجانده میشود .
حالا به مساله لرزش تصویر میرسیم .اگر توجه میکنیم با هرگونه جابجایی موس بارها رویداد های فوق تحریک وکدها اجرا میشوند ودر نتیجه بارها تصویر کنترل آپدیت میشود و باعث چشمک زدن و لرزش تصویر
برای حل این مشکل می توان یک متغیر عمومی تعریف و ومقدار آن را منوط به قرارگیری موس به روی کنترل مورد نظر قرارداد. ودر رویدادهای فوق با چک کردن آن دستور مقداردهی به تصویر کنترل انجام شود



Option Compare Database
Dim blnMosuseOverCmdClose As Boolean




Private Sub cmdClose_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not blnMosuseOverCmdClose then
cmdClose.Picture = strOnOverPic
blnMosuseOverCmdClose = True
End If
End Sub

Private Sub FormFooter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If blnMosuseOverCmdClose then
cmdClose.Picture = strOnExitPic
blnMosuseOverCmdClose = False
End IF
End Sub

Private Sub Detail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If blnMosuseOverCmdClose then
cmdClose.Picture = strOnExitPic
blnMosuseOverCmdClose = False
End IF
End Sub



البته این راه را بنده استفاده میکنم و بایدراههای دیگر هم باشد که اگر پیشنهاد شود ، ممنون میشویم