Guest - Marcelo - Postado Maio 13, 2005 Denunciar Share Postado Maio 13, 2005 Olato 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??brigadaoMarcelo Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Maio 13, 2005 Denunciar Share Postado Maio 13, 2005 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); falouEspero ter ajudadoV&A Link para o comentário Compartilhar em outros sites More sharing options...
0 marcelotq Postado Maio 13, 2005 Denunciar Share Postado Maio 13, 2005 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??obrigadoabraçoMarcelo Link para o comentário Compartilhar em outros sites More sharing options...
0 Felipee Postado Maio 13, 2005 Denunciar Share Postado Maio 13, 2005 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 More sharing options...
0 Progr'amador Postado Maio 13, 2005 Denunciar Share Postado Maio 13, 2005 No Timer?? 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 TRUEAbs. Progr'amador. Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - marcelotq - Postado Maio 13, 2005 Denunciar Share Postado Maio 13, 2005 ola.. muito obrigado a todos. consegue uma soluçao:if (key=#13) and ((activecontrol is tedit) or (activecontrol is tcombobox))thenbeginkey:= #0;Perform(WM_Nextdlgctl,0,0);end;e no form ativei o keypress!!brigadao a todosabraços Link para o comentário Compartilhar em outros sites More sharing options...
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