Você está na página 1de 2

Usar a tecla Enter como Tab

https://www.portugal-a-programar.pt/forums/topic/47901-usar-a-tecla-enter-como-tab/

Quem já programou em Delphi, por mais simples que fosse o programa, as


hipóteses de se ter deparado com este "problema" são grandes.

Imagine-se uma série de componentes TEdit, TComboBox, e outros, de


entrada de dados.

Para o Delphi (para o Windows na verdade), se quisermos mudar o foco entre


os vários componentes, temos de usar a tecla TAB (para avançar) ou
Shift-TAB (para retroceder).

Para o utilizador porém, é instintivo que, terminada a inserção de dados, ao


pressionar a tecla ENTER, o foco passe para o campo seguinte.

Isto, embora não esteja previsto, é possível, com pouco trabalho, de


reproduzir:

O primeiro passo é ativar a propriedade KeyPreview da Form.

Esta propriedade do tipo boolean tem o valor false como predefinição, e serve
para que ao ser pressionada qualquer tecla, o eventos relativos a elas a serem
executados primeiro são os da Form, e não os do componente selecionado.
Assim, o código que permitirá a tecla ENTER funcionar como TAB só terá de
ser criado para a própria form para funcionar em todos os "componentes de
inserção" (TEdit, TCombobox, TListBox, etc.)

Há dois métodos de fazer isto:

[*]Colocar um visto na propriedade KeyPreview do Object


Inspector (DesignTime)

[*]Inserir no evento OnCreate da Form a seguinte linha (RunTime):

procedure TForm1.FormCreate(Sender: TObject);


begin
KeyPreview:=true;
end;

Após isto, define-se no evento OnKeyPress da form com o seguinte


procedimento:
procedure TfrmPonto.FormKeyPress(Sender: TObject; var Key: char);
begin
if key=#13 then begin
SelectNext(ActiveControl as TWinControl,True,True);
key:=#0;
end;
end;

E pronto, a tecla ENTER funcionará como TAB em todos os controlos de


entrada presentes nessa form.

Você também pode gostar