1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[vb6] Evento do rato

Discussão em 'Programação' iniciada por WinAce_Boy, 19 de Janeiro de 2007. (Respostas: 10; Visualizações: 1265)

  1. WinAce_Boy

    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:

    Obrigado pela atenção.. ;)
     
  2. flaviorodrigues

    flaviorodrigues Power Member

    mouse down!
    exemplo
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    label1.caption = "ja deu"
    End Sub
     
  3. flaviorodrigues

    flaviorodrigues Power Member

    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!
     
  4. marco_simao

    marco_simao Power Member

    Se ainda me lembro existe o "mouse over" que é accionado quando passas com o ponteiro por cima de algo.
     
  5. flaviorodrigues

    flaviorodrigues Power Member

    e o mouse move!
     
  6. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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: 23 de Janeiro de 2007
  7. WinAce_Boy

    WinAce_Boy Power Member

    lol, so vi a tua resposta agora..
    Obrigado pela ajuda mas so uma pergunta: pa k serve a "Option Explicit"??
     
  8. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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 :)
     
  9. WinAce_Boy

    WinAce_Boy Power Member

    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?
     
  10. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    É. 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 :)
     
  11. WinAce_Boy

    WinAce_Boy Power Member

    Então é útil para avisar o utilizador..ok
     

Partilhar esta Página