Oppure

Loading
11/09/08 16:06
super rambo
salve, ho una listbox e mi servirebbe che quando il mouse è al di fuori della list la proprietà visible della list va a false. so che devo usare l sub mouse_move ma non so come.. come posso fare?? grazie
aaa
11/09/08 16:22
GrG
usa mouse_move della form

cioè quando il mouse si muove nella form allora rendi invisibile la lista ;)
aaa
11/09/08 16:29
ruggy94
Con Form_MouseMove identifica le coordinate del mouse e se identificano un punto al di fuori della list imposta la proprieta' visible di quest'ultima a false
aaa
11/09/08 16:50
super rambo
grazie dell'auito ma c'è un piccolo problema il form è coperto pienamente di oggetti e quindi la proprietà mouse_move del form non può andare. ho fatto così:

Dim cordx As Single 'Dichiaro le variabili da usare (X)
Dim cordy As Single 'Dichiaro le variabili da usare (Y)


Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cordx = X
cordy = Y

Text1 = X
Text2 = Y
End Sub

il codice funziona, quando muovo il mouse nella list i numeri nelle text cambiano però appena vado fuori si fermano. mi era venuto in mente di fare un timer che controllasse che se nelle text c'erano i numeri di quando esco dala list metteva la proprietà visible su false, ma i numeri delle text cambiano in base a dove esco dalla list (sopra, sotto ecc...) come potrei fare?? grazie!!
aaa
11/09/08 17:07
ruggy94
Postato originariamente da super rambo:

grazie dell'auito ma c'è un piccolo problema il form è coperto pienamente di oggetti e quindi la proprietà mouse_move del form non può andare. ho fatto così:

Dim cordx As Single 'Dichiaro le variabili da usare (X)
Dim cordy As Single 'Dichiaro le variabili da usare (Y)


Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cordx = X
cordy = Y

Text1 = X
Text2 = Y
End Sub

il codice funziona, quando muovo il mouse nella list i numeri nelle text cambiano però appena vado fuori si fermano. mi era venuto in mente di fare un timer che controllasse che se nelle text c'erano i numeri di quando esco dala list metteva la proprietà visible su false, ma i numeri delle text cambiano in base a dove esco dalla list (sopra, sotto ecc...) come potrei fare?? grazie!!


allora: intanto i numeri all'interno delle textbox non "cambiano" quando esci dalla listbox perchè la parte del codice che fa aggiornare le textbox l'hai messa all'interno di list1_mousemove.
Poi non capisco cosa intendi dire con questo
Postato originariamente da super rambo:

grazie dell'auito ma c'è un piccolo problema il form è coperto pienamente di oggetti e quindi la proprietà mouse_move del form non può andare.

Voglio dire...non capisco perchè "non può andare".
Infine i numeri cambiano se esci dalla list sopra o sotto perchè list1_mousemove aggiorna le coordinate finchè tu rimani all'interno della list1 e quindi viene scrito sulle textbox le coordinate del tuo mouse nell'ultimo istante in cui sei rimasto dentro la list1.
Ora faccio delle prove di codice e riposto.
PS: se non hai capito qualcosa fammelo sapere :k:
aaa
11/09/08 17:15
super rambo
per la list mi sono spiegato male ed è come dici tu, ma se io metto il codice in form_mousemove non funziona perchè nel form c'è un webbrowser che occupa tutta la pagina e l'evento mouse_move nel webbrowser non c'è quindi come faccio???
aaa
11/09/08 17:41
ruggy94
Esiste un'API in grado di aiutarti.
Dichiarazioni:
Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" _
    (lpPoint As POINTAPI) As Long
Private Declare Function ScreenToClient Lib "user32" _
    (ByVal hwnd As Long, lpPoint As POINTAPI) As Long


In un timer per ottenere le coordinate del mouse rispetto al form:
Dim pt As POINTAPI
    Call GetCursorPos(pt)
    Call ScreenToClient(Me.hwnd, pt)
    Debug.Print "Screen Coords: ", pt.x, pt.y

Adesso ti basta aggiungere un If al timer in modo che identifichi quando il mouse esce dalla list1 :k:
Ultima modifica effettuata da ruggy94 11/09/08 17:41
aaa
11/09/08 17:51
super rambo
ho preso un punto al di fuori della list e ho fatto l'if.. funziona ma l'utente dovrebbe passare proprio in quel punto per mettere la proprietà visible a fale... tu intendevi questo o ho sbagliato io?? Grazie!!
aaa