Ir para conteúdo
Fórum Script Brasil
  • 0

Tab E Enter = Mesmas Funçoes


Guest - Marcelo -

Pergunta

Guest - Marcelo -

Ola

to precisando deixar o enter com a mesma função do tab.. para que ao apertar enter o campo mude para o outro. exemplo: escrevo algo no edit1 e aperto enter.. ai vai pro edit2.. tem como??

brigadao

Marcelo

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Substituindo TAB pelo ENTER

procedure TF_Padrao.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if Key = #13 then
  if not (ActiveControl is TDBGrid) then
  begin
   Key := #0;
   Perform(WM_NEXTDLGCTL, 0, 0);
  end
  else if (ActiveControl is TDBGrid) then
   with TDBGrid(ActiveControl) do
     if selectedindex < (fieldcount -1) then
      selectedindex := selectedindex +1
    else
      selectedindex := 0;
  end;
Ou então, pode-se tentar o seguinte método: Utilize o evento onkeydown do componente e insira o seguinte comando:
if Key = VK_RETURN then Perform(Wm_NextDlgCtl,0,0);
este comando testa a tecla pressionada, se ela for um enter, manda o foco para o componente posterior. Ou ainda no OnKeyPress de cada componente coloque:
If Key=#13 Then //#13 é código da tecla enter
  Perform(Wm_NextDlgCtl,0,0);

falou

Espero ter ajudado

V&A

Link para o comentário
Compartilhar em outros sites

  • 0

ola.. muito obrigado.. tentei usar as 3 soluçoes porem tive o mesmo problema:

[Error] prjSeguroDesemprego.pas(124): Undeclared identifier: 'Key'

utilizei no Time, conforme descrito no codigo q segue:

procedure TForm1.Timer1Timer(Sender: TObject);
begin

        If Key=#13 Then //#13 é código da tecla enter
           Perform(Wm_NextDlgCtl,0,0);
end;

devo declarar essa variavel Key??

obrigado

abraço

Marcelo

Link para o comentário
Compartilhar em outros sites

  • 0

kara,

eu sugiro não fazer isso não.

o tab é padrão do windows para saltar de campos.

o enter é para confirmar uma operacao.

isso fora de seu programa pode confundir o usuario e fazer com que ele execute uma operacao que não deseja ao pressionar enter.

Deixa como está.

Sugestao...

Abras e sucesso!

Felipee.

Link para o comentário
Compartilhar em outros sites

  • 0

No Timer?? blink.gif

Coloque no OnKeyDown do Form:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_RETURN then Perform(Wm_NextDlgCtl,0,0);
end;

e na propriedade do KeyPreview do form coloque TRUE

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - marcelotq -

ola.. muito obrigado a todos. consegue uma soluçao:

if (key=#13) and ((activecontrol is tedit) or (activecontrol is tcombobox))then

begin

key:= #0;

Perform(WM_Nextdlgctl,0,0);

end;

e no form ativei o keypress!!

brigadao a todos

abraços

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...