[vb6] Evento do rato

WinAce_Boy

Power Member
Oi pessoal!
Boas, existe algum evento do rato que quando se passa o cursor por cima de alguma coisa, executa uma função?

Por exemplo:

private/public sub qualquer coisa_(evento do rato)

Label1.Caption = "lol"

End Sub

Obrigado pela atenção.. ;)
 
caso keiras quando passas com o rato por cima de uma label por exemplo:
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Caption = "ja deu"
End Sub

facil!
 
Os eventos do rato, em VB6, são, muito resumidamente, os seguintes:

MouseMove: quando o rato se "move" sobre o controlo.
MouseDown: accionado mal é pressionado um botão do rato (mal carregas, quer largues quer não)
MouseUp: accionado, depois dum mousedown, quando largas a tecla.

O MouseMove pode ser controlado entre um Down e um Up. Por outras palavras, podes "arrastar" um controlo, quando manipulares bem os três eventos. É MouseDown -> vários MouseMove's -> MouseUp.

A ordem com que são chamados estes eventos é a seguinte:
MouseMove (mal o rato "entra" no controlo) -> MouseDown (mal clicas) -> MouseMove (quando, ainda com o botão do rato clicado, mexes o rato) -> MouseUp (quando largas o rato) -> Click (precede sempre um MouseUp) -> MouseMove (quando continuas, já sem botões carregados, a mover o rato sobre o controlo).

Argumentos:
Tanto o MouseDown como o MouseUp como o MouseMove passam o X e o Y em que se encontra o rato no controlo. Também passam o evento Shift (que retorna 1 se tiveres a tecla Shift pressionada, 2 com Control e 4 com Alt. Se pressionares em Shift+Control, retorna 1+2, Shift+Alt, retorna 1+4, Control+Alt, 2+4, Shift+Control+Alt, 1+2+4).
O MouseDown e o MouseUp têm também os argumentos Button, que indicam se qual dos botões do rato foi pressionado. vbLeftButton (botão esquerdo), vbRightButton (botão direito), e vbMiddleButton (em ratos onde há botão no meio, ou quando carregas na "rodinha" que certos ratos têm).
O MouseMove também tem o argumento Button, mas eu não percebo para que serve :confused:

Acho que já está suficientemente detalhado para fazeres o que quiseres com o rato :P

edit -
já agora, como brincadeira, faz um novo form, cria nele uma nova CommandButton, e uma nova TextBox. Não toques em mais nada. Posta no form o seguinte código:
Código:
Option Explicit
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Command1.Left = Command1.Width Then
        Command1.Left = 3 * Command1.Width
    Else
        Command1.Left = Command1.Width
    End If
End Sub
Private Sub Form_Load()
 
    Command1.Left = Command1.Width
    Me.Width = 5 * Command1.Width
    Command1.Caption = "Clica-me =P"
    Command1.TabStop = False
    Text1.Left = Me.Width * 2
    Text1.Locked = True
End Sub
É velho, mas ainda mete piada, e para quem está a começar a brincar com isto, até é educativo :) :-D

Cumprimentos [[[[[[[]]]]]]]
angelofwisdom
 
Última edição:
Option Explicit obriga-te a declarar as variáveis antes de as poderes usar. Em linguagens como o C ou Pascal, isso é sempre obrigatório. Já no VB podes usar uma variável "do nada" que ela passa automaticamente a existir.
Sinceramente, não sei a nível técnico as vantagens do Option Explicit. No entanto, sei que é boa práctica usar-se (especialmente porque obriga-te a seguir regras mais rígidas, e quando mudares de linguagem, o choque de seres obrigado a declarar as variáveis antes de as usares será menor, se não nulo). E pelo menos não cometes de certeza um erro que até eu já cometi por engano. Usares algo como "Variavel = 2" e num ponto qualquer escrevi "Variavek = Variavel + 1".... o que se passa é que era suposto a Variavel incrementar, mas devido a um erro a escrever (trocar sem querer um L por um K), é "Variavek" que fica com o valor que "Variavel" devia ter. Resumindo, se te enganares a escrever o nome de uma variável, não a consegues inventar. Levas com um erro do VB.

Talvez seja melhor eu deixar a parte técnica para alguém que saiba :)
 
ah entao isso e bom para evitar esses erros, pelo menos assim ele avisanos k akela "variavek" não esta declarada, nao podendo usala. isso é uma vantagem certo?
 
ah entao isso e bom para evitar esses erros, pelo menos assim ele avisanos k akela "variavek" não esta declarada, nao podendo usala. isso é uma vantagem certo?
É. Quando usas uma variável não declarada e tens "Option Explicit", ele dá-te o erro "Variable not defined" sobre a variável em questão. Se precisares dela, declaras. Senão, apagas, e se for um erro, corriges :)
 
Back
Topo