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

Mouse Over Label em VB 6

Discussão em 'Programação' iniciada por BelzebuVlad, 28 de Março de 2007. (Respostas: 10; Visualizações: 1678)

  1. BelzebuVlad

    BelzebuVlad Power Member

    Alguém sabe como fazer um efeito mouse over numa label em vb 6 em que este altere a cor do texto da label, já tentei com um mouse_move só que quando acontece o mouse out não continua com a cor do mouse over... Alguém sabe? Obrigado
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    A label tem uma determinada cor
    Quando passas o rato por cima, a cor muda
    Quando o tiras, volta à cor inicial

    É isso que queres?
     
  3. BelzebuVlad

    BelzebuVlad Power Member

    É o que disseste só que em vez de ser a cor da label é o forecolor (cor da letra da label)
     
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Era isso que eu queria dizer :P mas esqueci-me de mencionar o ForeColor.

    Agora diz-me só uma coisa: a label está "contida" em algum controlo? Como uma frame ou uma picturebox?

    É assim: a forma como eu faria era, no controlo à volta da(s) label(s) (a picturebox, o frame, ou o próprio form), metes um evento MouseMove, e nesse evento, "repõe" as cores de todas as labels. Portanto, não dizes "quando o rato sai da label", mas sim "quando o rato entra noutro controlo que não aquela label", e no MouseMove da própria label, alteras o seu forecolor para o que queres.
    Não sei se estou a ser suficientemente explícito, mas se quiseres faço um desenho :)

    Cumps [[[[[[]]]]]]
    angelofwisdom
     
  5. BelzebuVlad

    BelzebuVlad Power Member

    Epah, é isso, tenho sido taoooo burro!!! LOL, tipo eu estava a pensar dessa forma, só que esqueci-me que as labels estavam dentro de uma frame, e eu tentei dessa forma utilizando um form_move...LOOOOL, tenho de testar isso e depois digo qualquer coisa aqui.. Obrigado pela dica
     
  6. BelzebuVlad

    BelzebuVlad Power Member

    Código:
    Private Sub cmdnovo_mousemove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     
    cmdnovo.ForeColor = black
     
    End Sub
    
     
    Private Sub frame1_mousemove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     
    cmdnovo.ForeColor = green
     
    End Sub
    
    Coloquei o codigo assim e continua a não funcionar, o que acontece agora é que o forecolor da label, aquando o load da form, aparece logo preto...

    Alguma ideia?!
     
  7. lightMC

    lightMC Power Member

    em vez de pores black ou green mete vbBlack, vbGreen...

    tambem podes fazer algo do género : cmdnovo.ForeColor = RGB(0,0,0)
    Assim podes meter as cores que quiseres. ;)
     
  8. BelzebuVlad

    BelzebuVlad Power Member

    Contornei a situação, criei duas labels com o mesmo texto mas com cores diferentes, coloquei uma em cima da outra, uma delas com a propriedade visible como false. Com o mouse_move numa delas e no controlo que está por detrás delas (neste caso uso uma frame) faço desaparecer e aparecer as labels criando assim um efeito parecido com o mouse_move.

    Obrigado na mesma
     
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Mas isso é desnecessário!
    Onde fazes a troca em que uma label aparece ou desaparece, é aí que mudas o ForeColor da label.
    label.ForeColor = vbBlack
    label.ForeColor = vbGreen

    Qual é o problema que estás a ter?

    edit - a tua label chama-se cmdnovo? É que se sim, não te aconselho a usares esse prefixo ;)
     
    Última edição: 29 de Março de 2007
  10. BelzebuVlad

    BelzebuVlad Power Member

    Ya, funcionou, obrigado, assim dá menos trabalho =).
    Em relação às labels chamarem-se cmdkkcoisa é porque as estou a utilizar como botão e para as diferenciar das outras labels de apenas texto que se chamam mesmo lblkkcoisa. Acho que te referiste a isso por causa disso certo?
     
  11. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Ainda bem que funcionou :)

    Sim, era basicamente por isso. Geralmente, só usas o prefixo "cmd" nos Command buttons e "lbl" nas Labels. Se é uma label que age como um commandbutton, podias usar um prefixo como "cml" (command label, como eu lhe chamo). Mas isto é uma opinião pessoal, nada de standard ;)

    De qualquer das formas, há que notares uma coisa: se mexeres o rato demasiado depressa, pode acontecer ele não "apanhar" o mousemove fora do label e a cor mantém-se. Experimenta isso ;)
     

Partilhar esta Página