Notifications
Clear all

SpecialEffect na image

12 Posts
2 Usuários
0 Reactions
1,749 Visualizações
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Pessoal,

Utilizo vários botões no meu sistema, dentre eles, alguns são ''image'' e outros ''CommandButton''.

Nos que são ''image'', com intuito de sinalizá-los e, até mesmo para ficar algo mais sistematizado, eu utilizo o código abaixo:

Private Sub Image14_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Image14.SpecialEffect = fmSpecialEffectEtched
End Sub

A pergunta é, tem como eu fazer algo igual ou similar para os "CommandButton'?'.

 
Postado : 14/08/2014 7:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O commandbutton não tem o evento mouseover. mesmo que tivesse, não tem a propriedade specialeffect.

Eu sugiro, se vc quer muito dar esse efeito nos botões, pq não os substitui por imagens que pareçam eles.??
daí vc muda a imagem no mouseclick, muda a imagem no mouse over.... tendeu ?

FF

 
Postado : 14/08/2014 8:10 am
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Sim, isso eu já tinha pensado, mas o problema é que o meu projeto já está todo parametrizado com os atuais botões, mas enfim, farei o que você sugestionou.

 
Postado : 14/08/2014 10:28 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Sugestão melhorada:
Faça isso, mas para não dificultar, crie rotinas reutilizáveis...
Tipo

Sub trocarImagem(byref oImage as picture, byval NovaImagem as string)
End Sub

Algo assim, que vc pode desenvolver uma vez só, e criar as diversas chamadas dentro dos eventos...
A razão, se vc precisar mudar alguma coisinha no código, vc muda só num lugar e não em todos os botões...

;-)

 
Postado : 14/08/2014 11:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se a intenção é somente destacar o CommandButtom, pode utilizar o BackColor:

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CommandButton1.BackColor = vbGreen
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CommandButton1.BackColor = &H8000000F
End Sub
 
Postado : 15/08/2014 11:49 am
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Pessoal,

Ambas as dicas são ótimas.

Eu alterei os botões de comando pelas as "image", criei ícones legais, coloquei um efeito no mousemove (vide abaixo) e, com isso, padronizei todo o meu sistema no que refere-se a botões.

Private Sub Image37_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Image37.SpecialEffect = fmSpecialEffectSunken
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Image37.SpecialEffect = fmSpecialEffectRaised

end sub

A minha dificuldade agora é dar o setfocus na "image". Como faço?

 
Postado : 15/08/2014 1:33 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Pessoal, alguém pode ajudar-me?

 
Postado : 16/08/2014 8:26 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Pessoal,

Buscando ser mais claro:

Ao realizar o cadastro de uma programação, o usuário preenche alguns textbox e combobox.

Eu quero que, quando o usuário preencher o ultimo textbox do cadastro e der Enter, o setfocus vá para image.

Como faço isso?

 
Postado : 18/08/2014 4:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Até onde eu sei, o controle image não aceita a propriedade SetFocus, então, a não ser que alguem diga o contrário, sem chance de fazer desta forma.

[]s

 
Postado : 18/08/2014 4:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Imagem não aceita setfocus...
Uma alternativa seria vc codificar o keypress do userform para identificar o enter e disparar o código da imagem...

 
Postado : 18/08/2014 6:15 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Pois é Fernando,

De fato a imagem não aceita o setfocus, mas, pelo o que eu entendi, fazendo o que você sugestionou, o usuário ao dar o exit no ultimo textbox preenchido, automaticamente o comando contido na Imagem (Confirmar) será executado. Estou certo? Se sim, não acho uma excelente ideia, pois talvez, mesmo que o usuário tenha cadastrado todos os campos, a vontade dele ainda não é de confirmar.

Acho que, para alguns casos, manterei o CommandButton, ao invés da image.

Corrija-me se eu estiver interpretando errado.

 
Postado : 18/08/2014 7:38 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Fernando,

Eu usei o Keydown.. veja abaixo:

Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Call Password_AfterGotFocus

If KeyCode = 13 Then

''verifica se a tecla enter foi acionada.

image37_Click

End If

End Sub

 
Postado : 20/08/2014 1:03 pm