PDA

View Full Version : درخواست یک Button



meh_secure
چهارشنبه 30 آذر 1384, 10:23 صبح
سلام دوستان.

من دنبال یه component هستم که بتونه 3 تا عکس به عنوان mouse up - mouse down - mouse over بگیره و مثل یک button عمل کنه.

اگه کمک کنید ممنون می شم.

H_SH_VB
چهارشنبه 30 آذر 1384, 12:15 عصر
man ye control neveshtam ye chizie shabihe in chizi ke shoma mikhay
avazesh 5 ta doaye faraj bekhoon :لبخندساده
movafagh bashi

meh_secure
چهارشنبه 30 آذر 1384, 12:23 عصر
ممنون. برم تستش کنم ببینم چیه

meh_secure
چهارشنبه 30 آذر 1384, 12:27 عصر
دستت درد نکنه . چیزی نداری که mouse over رو هم جواب بده ؟؟

H_SH_VB
چهارشنبه 30 آذر 1384, 18:38 عصر
rastesh mouse over ro mitoonam behesh ezafe konam, vali natoonestam kari konam ke vaghti mouse azash biroon mire befahme
baraye form mitoonam in karo konam
vali baraye control natoonestam
age tabasho dari behem bede, dorost mikonam hatman
mitoonim ham ye kari konim
mouse vaghti az roosh mire mouse overesh khamoosh she, vali codesho bayad dasti fa'aal koni
ye method bezaram, vaghti mouse raft roo control haye dige oono ejra koni
hala age tabei peyda nakardi ke khorooje mouse az mahdoodeye control ro befahme, begoo oonjoori minvisam barat

S.Azish
چهارشنبه 30 آذر 1384, 19:50 عصر
این button که من نوشتم تصویر برای حالتهای مختلف mouse نداره ولی ورود و خروج mouse رو میتونه کنترل کنه.

سورس کدش رو میتونید ببینید

www.saeidazish.com قسمت Downloads

meh_secure
جمعه 02 دی 1384, 01:00 صبح
در مورد Mouse out درست می فرمایید.
میشه رو کنترل های دیگه مثل فرم کد نوشت. من این کار رو کردم ولی بعضی اوقات به مشکل می خوره.
مثلا اگه ماوس رو سریع جابجا کنی درست عمل نمی کنه و ....

meh_secure
جمعه 02 دی 1384, 01:01 صبح
منظورتون از ورود و خروج ماوس چیه ؟؟؟

حامد مصافی
جمعه 02 دی 1384, 01:31 صبح
سلام
یک تایمر روی کنترل بذارین (با دوره کوتاه)
و کد زیر رو برای رویداد تیک تایمر بنویسید


Private Sub tmrHower_Timer()
Dim mapi As POINTAPI
GetCursorPos mapi
If WindowFromPoint(mapi.X, mapi.Y) <> hwnd Then
'Mouse is over
End If
End Sub

و تعریف تابع زیر رو از یاد نبرید


Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

H_SH_VB
جمعه 02 دی 1384, 01:39 صبح
agha salam va mamnoon
vali in kar ke kheyli cpu ro mashghol mikone
man fek mikonam oon kari ke doostemoon z.azish karde kheyli behtare
vali nemifahmam daghigh ke chi kar kardan
age tozih bedan kheyli khoobe

meh_secure
جمعه 02 دی 1384, 01:42 صبح
فکر کنم بعد از 5 دقیقه cpu بترکه.
در هر صورت کار راه اندازه

حامد مصافی
جمعه 02 دی 1384, 09:34 صبح
سلام
یادم رفت بگم در قسمت داخل بلوک If تایمر را غیر فعال کنید و در رویداد MouseMove آن را فعال کنید
در ضمن شما مطمئن باش این راه Usage بالایی نداره و سی پی یو هم نمی ترکه!!!
نا سلامتی سالیان ساله که ما از این روش استفاده می کنبم

در ضمن شما اگه بدون تایمر رویداد mouseover رو به دست آوردید به منم بگید!!!

H_SH_VB
جمعه 02 دی 1384, 13:29 عصر
salam blackDal jan
in doostemon ye barname neveshte bood ke in karo mikard dige
bedoone timer
vali man azash sar dar nayavordam
baraye form in tabe haash hast
va kar mikone
vali baraye control man natoonestam ta hala

in baraye ye forme
az barnameye api-guide daravordam(inam vase inke nagan matlabe elmi dozdid)



'In a form (Form1)
Private Sub Form_Click()
Dim ET As TRACKMOUSEEVENTTYPE
'initialize structure
ET.cbSize = Len(ET)
ET.hwndTrack = Me.hWnd
ET.dwFlags = TME_LEAVE
'start the tracking
TrackMouseEvent2 ET
'show a message to the user
Me.Print "Move the mouse cursor outside the form" + vbCrLf + "to generate a WM_MOUSELEAVE event"
End Sub
Private Sub Form_Load()
'KPD-Team 2001
'URL: KPDTeam@Allapi.net
'E-Mail: KPDTeam@Allapi.net
'show a warning message
MsgBox "WARNING: This sample uses subclassing." + vbCrLf + "To end this program, always use the X button of the form." + vbCrLf + "Do not use VB's Stop button and do not use the 'End' keyword in your VB code." + vbCrLf + vbCrLf + "For more information about subclassing, check out" + vbCrLf + "our subclassing tutorial at http://www.allapi.net/", vbExclamation
'set the graphics mode to persistent
Me.AutoRedraw = True
Me.Print "Click the form to begin"
'start subclassing this form
HookForm Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
'stop subclassing this form
UnHookForm Me
End Sub
'In a module
Public Const TME_CANCEL = &H80000000
Public Const TME_HOVER = &H1&
Public Const TME_LEAVE = &H2&
Public Const TME_NONCLIENT = &H10&
Public Const TME_QUERY = &H40000000
Public Const WM_MOUSELEAVE = &H2A3&
Public Type TRACKMOUSEEVENTTYPE
cbSize As Long
dwFlags As Long
hwndTrack As Long
dwHoverTime As Long
End Type
Public Declare Function TrackMouseEvent2 Lib "comctl32" Alias "_TrackMouseEvent" (lpEventTrack As TRACKMOUSEEVENTTYPE) As Long
Public Declare Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As Long) As Long
'Subclassing is explained in our subclassing tutorial at http://www.allapi.net/
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public PrevProc As Long
Public Sub HookForm(F As Form)
PrevProc = SetWindowLong(F.hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnHookForm(F As Form)
SetWindowLong F.hWnd, GWL_WNDPROC, PrevProc
End Sub
Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_MOUSELEAVE Then
'if we receive a WM_MOUSELEAVE message, show it
Form1.Print "The mouse left the form!"
End If
WindowProc = CallWindowProc(PrevProc, hWnd, uMsg, wParam, lParam)
End Function

meh_secure
چهارشنبه 14 دی 1384, 14:10 عصر
بعد از کلی تحقیق و بررسی به این نتیجه رسیدم که با فلش باتنم رو بسازم و با اعمال یک سری کد به جای کلید از اونا استفاده کنم

meh_secure
چهارشنبه 14 دی 1384, 14:21 عصر
در یکی از تاپیکهای همین بخش بحثش مطرح شد که توسط دوستم آقای مصافی به نتیجه رسید
اسمش هم : مشکل استفاده از flash در vb هستش

حامد مصافی
چهارشنبه 14 دی 1384, 14:54 عصر
سلام
جناب H_SH_VB (http://www.barnamenevis.org/forum/member.php?u=14747) این کد برای خروج ماوس از یک پنجره به کلاس فرم کار می کنه نه برای یک پنجرهء دیگه

Payam Moradi
جمعه 16 دی 1384, 17:11 عصر
این کنترل تمامی خواسته هایشما را دارد. به روالها و خصایص توجه کنید.

http://www.barnamenevis.org/forum/showthread.php?t=21988

meh_secure
جمعه 16 دی 1384, 23:10 عصر
سلام.
اونجا رو دیدم ولی چیزی برای دانلود نبود. بی زحمت یه نگاه بندازین.
مرسی

Payam Moradi
چهارشنبه 21 دی 1384, 17:09 عصر
سلام.
اونجا رو دیدم ولی چیزی برای دانلود نبود. بی زحمت یه نگاه بندازین.
مرسی

بله درسته براتون میل میکنم.

rtech
پنج شنبه 22 دی 1384, 11:25 صبح
از دکمه های فلش استفاده کنید :
http://www.barnamenevis.org/forum/showthread.php?t=36252

meh_secure
پنج شنبه 22 دی 1384, 12:55 عصر
خیلی ممنون ولی مثل اینکه هنوز وقت نکردید بفرستید.

Payam Moradi
چهارشنبه 28 دی 1384, 19:20 عصر
خیلی ممنون ولی مثل اینکه هنوز وقت نکردید بفرستید.

من واقعا متاسفم. براتون میل کردم به Meh_Secure@Yahoo.Com

باز هم ببخشید.

meh_secure
چهارشنبه 28 دی 1384, 22:05 عصر
من واقعا متاسفم. براتون میل کردم به Meh_Secure@Yahoo.Com

باز هم ببخشید.

دست شما درد نکنه.
همین که وقت گذاشتید ممنونم.