Newsgroup: it.comp.lang.visual-basic
Titolo: Domandine

Ciao, ho qualche nouva domandina per voi:
1. Ho usato questa routine per cambiare lo sfondo di una label al passaggio
del mouse, ma come faccio a dire al prg di farla ritornare come prima quando
il mouse non ci sta più sopra?
Ecco la routine:
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
  Label1.BackColor = &H8000000D
End Sub
2. Come faccio a dire al form che, al click del pulsante si posizioni nella
posizione del cursore? Cioè, il prg è aperto, ma il form no, come a faccio a
dirgli che alla pressione di un particolare pulsante il form appaia nella
posizione del cursore (ad esempio con la punta della freccia che corrisponde
ad un angolo del form?
Spero di essermi spiegato e di non essere stato troppo contorto :-))
Come sempre vi ringrazio del tempo che perdete.
--
---
Ramses
"God is just a statistic"
ICQto: 39860665
mailto: 
ram...@freemail.it

1. Nei casi in cui mi è servito ho sempre usato un 'barbatrucco' ossia
quando il mouse passava sul FORM...voleva dire che non stava piu' sull
label...e quindi nel MouseMove del Form rimettevo il BackColor della Label
sul colore ordinario.
2. Beh...se per far apparire il Form bisogna cliccare su un pulsante di
un'altro Form diciamo che già sai dove si trova il mouse e quindi ti basta
settare il TOP del form che si aprirà come il TOP del primo form + la TOP
del bottone dove si clicca e il
LEFT del nuovo form come la somma del LEFT del primo FORM+ il LEFT del
bottone dove si clicca.
E' piu' facile  a farlo che a scriverlo! ;-)
Comunque queste due soluzioni non sono proprio 'pulite' se qualcuno ha di
meglio prego...c'è sempre da imparare!
Gianni Moretti

 E' piu' facile  a farlo che a scriverlo! ;-)
Ho capito, ma non è così. Il pulsante viene premuto su di una icona (quella
del mio programma) che sta sulla tray. eheheh troppo facile altrimenti :-))
Grazie infinite cmq.


 mailto: 
ram...@freemail.it
Ciao VB

 BorderStyle=0-None, la picture deve essere poco più grande della label,
Mi correggo la soluzione più semplice è quella di Gianni che usa un
controllo in meno.
Ciao VB

 controllo in meno.
confermo, l'ho provata anch'io, con una matrice. codice qui sotto.
pero' la tua consente forse, volendo, di gestire piu' label ecc. ognuna con
il suo colore. se p.e. sono affiancate, il mouse sul form puo' non
passarci...
unica cosa: avevo avuto l'impressione che con movimenti _molto_ veloci del
mouse si perdesse qualche move qui e la'...
Option Explicit
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,
Y As Single)
    Dim j As Integer
    For j = 0 To 5
            Label1(j).BorderStyle = 0
            Label1(j).BackColor = vbYellow
            Label1(j).ForeColor = vbBlack
            Label1(j) = "label1"
            Text1(j).BorderStyle = 0
            Text1(j).BackColor = vbYellow
            Text1(j).ForeColor = vbRed
            Text1(j) = "text1"
    Next
End Sub
Private Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As
Integer, X As Single, Y As Single)
    Dim j As Integer
    For j = 0 To 5
        If j = Index Then
            Label1(j).BorderStyle = 1
            Label1(j).BackColor = vbBlack
            Label1(j).ForeColor = vbYellow
            Label1(j) = "IN EVIDENZA"
        Else
            Label1(j).BorderStyle = 0
            Label1(j).BackColor = vbYellow
            Label1(j).ForeColor = vbBlack
            Label1(j) = "label1"
        End If
    Next
End Sub
Private Sub Text1_MouseMove(Index As Integer, Button As Integer, Shift As
Integer, X As Single, Y As Single)
    Dim j As Integer
    For j = 0 To 5
        If j = Index Then
            Text1(j).BorderStyle = 1
            Text1(j).BackColor = vbRed
            Text1(j).ForeColor = vbYellow
            Text1(j) = "IN EVIDENZA"
        Else
            Text1(j).BorderStyle = 0
            Text1(j).BackColor = vbYellow
            Text1(j).ForeColor = vbRed
            Text1(j) = "text1"
        End If
    Next
End Sub

 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
Single,
<CUT>
Ecco lo sapevo, io mi ero limitato a un semplice, piccolo esempio e tu sei
dovuto arrivare con un form degno di un'esperienza allucinogena 8-)))
Ciao VB

 dovuto arrivare con un form degno di un'esperienza allucinogena 8-)))
belli i colori eh ? :))
stasera potrebbero arrestarmi per quantita' eccessiva di parmigiana di
melanzane...
buona, a.

Si, gli eventi move mouse vengono generati ogni tot tempo, se ti trovi su
una label e sposti molto velocemente il mouse al di fuori del form, non
verra' generato nessun evento move mouse, ne' sulla label ne' sul form.
La soluzione e' quella di 'catturare' il mouse o di inserire un timer che
ogni tot tempo controlla se la posizione del mouse e' al di fuori della
label o del form.
Salve
                Dbg
pal ha scritto nel messaggio


E pensa che ha il coraggio di dire che le mie classi gli fanno venire le
coliche, tse ...
Salve
                Dbg
Valter ha scritto nel messaggio


mouse si perdesse qualche move qui e la'...
VB perde sempre qualche pixel quando si muove il mouse un po'
velocemente, quindi in effetti bisogna starci molto attenti.
Me ne sono accorto lavorando a un piccolo programma di analisi di
fotomicrografie di laboratorio --il progetto dovrebbe diventare open
source appena termino un paio di routines che ho ancora a meta'--.
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro RomagnoloŽ, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-IV --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD