TABULANDO ENTRE OS CAMPOS DE UM FORM...

XYKOVIEIRA 29/09/2009 13:35:13
#323971

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys ([Ô]{TAB}[Ô])
KeyAscii = 0
End If
End Sub

(Propriedade KeyPreview do form = True)

Meus amigos,
Com a rotina acima, posso tabular entre os campos de um form pressionando a tecla <Enter>, ao invés de <Tab>.
Contudo, o controle NumLock do teclado fica sempre alternando entre <Ligado> e <Desligado>.... Portanto, nos
campos onde deve entrar texto, sem problema. Já se for número, o teclado numérico estando desativado acaba
mudando o foco para a próxima textbox, sem que o número desejado fique registrado naquele campo....
Como devo fazer para que a tecla NumLock fique sempre ativada, não modificando esse status durante a tabu-
lação entre os campos? Existe alguma função para isso?
ROBIU 29/09/2009 14:36:36
#323977
EMERSONTADEU 29/09/2009 15:52:17
#323987
Seria melhor que usasse o tab e ensine aos seus usuários que [Enter] pode ser muito útil sendo [Enter] mesmo.

Vc escreve bem menos linhas e portanto terá menos código a manter ... bom para todo mundo.

Infelizmente a MS até permite que os programadores tenham alguma liberdade criativa, mas os obriga a aprender sobre o pouco documentado uso de API no VB e delimita muito bem o que ela quer e o que não quer apoiar.

Resumindo: não seguir [Ô]Padrão MS[Ô] pode trazer-nos problemas na evolução natural dos SO e SP[ô]s ...
RCMRO 29/09/2009 16:49:35
#323995
Resposta escolhida
Na realidade, o uso do TAB e do ENTER remonta aos antigos sistemas não graficos em que o ENTER era realmente a ENTRADA de dados e não um [Ô]PULADOR DE CAMPOS[Ô]. Ainda nos emuladores de terminais mainframe as teclas funcionam assim.
Enfim, o tio Bill escapou da culpa neste caso... Não foi ele a criar a regra (se é que ele criou alguma)....
De qualquer forma, os padrões tendem a ser seguidos e, sem quase excessão alguma, os softwares escritos para padrão gráfico ou não usam o ENTER para confirmar a digitação total da tela e o TAB/SH.TAB para andar pelos campos antes de gravar. Lembremos que o mundo sem MOUSE ainda existe, aquele mundo em que as pessoas têm ainda que escrever muito para entrar com dados (contabilidade, faturamento, etc) e, nesse mundo, o MOUSE é um coajuvante que na maioria das vezes entra em cena para atrapalhar e atrazar tudo.

Resumindo, sendo um padrão, una-se a ele ou grite sozinho no meio da praça, esperando a ambulância chegar e te levar para o [Ô]desempenador de bytes[Ô] (hospicio).

Abraços
XYKOVIEIRA 29/09/2009 18:02:03
#324003
Hmmm... Vou tentar convencer o cliente a [Ô]se esquecer[Ô] dos tempos do Clipper (eu mesmo sou viciado em tabular
pelo <Enter>, em total descompasso com qualquer form de preenchimento pela internet, onde você só muda de
campo clicando no próximo, ou usando a tecla TAB)... E olhe que nunca programei em linguagem procedural, mas
trabalhei um bom tempo em sistemas com interface DOS... Eta vício mardito....
Muito obrigado, de qualquer maneira, pela colaboração. Abraços.
Chico.
Tópico encerrado , respostas não são mais permitidas