Utilizando o Enter ao invés do TAB
Sempre estamos nos atualizando tecnológicamente mas, mesmo assim, às vezes precisamos fazer coisas do passado. Porque digo isso?
É que antigamento, em sistemas DOS utilizávamos a tecla Enter ou Return para avançarmos de campo. Com a chegada do Windows tivemos que utilizar a tecla TAB para trocar de campo. A princípio ninguém gostou mas, analisando melhor, vejo que essa troca tem o objetivo acelerar o trabalho do digitador. Pensem que uma digitação de números, na maioria das vezes envolve somente a mão direita, ficando a esquerda livre. Então porque não trocar de campo usando a mão esquerda e a tecla TAB, diminuíndo assim as tarefas da mão direita?
Creio que por vícios do DOS, sempre teremos que alterar nossos sistemas para alterar o Tab por Enter.
Então para quem quer usar o Enter, siga as instruções abaixo:
º - No evento OnShow do formulário principal coloque o seguinte código:
Application.OnMessage := ProcessaMsg;
Esse código deve ser o último, caso você já tenha outros código no mesmo evento (OnShow)
2º - Suba até a seção "private" da unit
3º - Abaixo da palavra "private" coloque a seguinte linha, que irá criar um procedimento:
procedure ProcessaMsg(var Msg: TMsg; var Handled: Boolean);
4º - Com o cursor do mouse posicionando na linha que você acabou de digitar, pressione
as teclas CTRL+SHIFT+C
Isso montará a estrutura do procedimento.
5º - Copie o código abaixo para o procedimento que você acabou de criar (entre Begin e End;).
if Msg.message = WM_KEYDOWN then
if not (Screen.ActiveControl is TCustomMemo) and
not (Screen.ActiveControl is TButtonControl) then
begin
if not (Screen.ActiveControl is TCustomControl) then
begin
if Msg.wParam = VK_Down then
Msg.wParam := VK_Tab;
if Msg.wParam = VK_UP then
begin
Msg.wParam := VK_CLEAR;
Screen.ActiveForm.Perform(WM_NextDlgCtl,1,0);
end;
end;
if Msg.wParam = VK_Return then
Msg.wParam := VK_Tab;
end;
6º Na Cláusula Uses adicione StdCtrls.
É isso. Agora é só compilar e testar.
Ah esse código não tem o problema de emitir som a cada campo que é trocado, como acontece em alguns códigos que a gente encontra por aí.