GARANTIR DESCONTO

Fórum Setas do teclado.....................URGENTE #147159

18/03/2003

0

Caros colegas estou com o seguinte problema;

eu tenho um banco de dados e coloquei ele num form... a rotina de
fazer que o ENTER mude o focu eu sei é;
if key=#13 then
begin
dbedit2.setfocus;
key:=0;
end;

mas eu quero saber como eu faço para quando eu der ENTER e ele mudar
o focu, eu pressionar as setas do teclado e ele voltar para o campo novamente ate mesmo os que eu ja dei ENTER.....


Anonymous

Anonymous

Responder

Posts

18/03/2003

Aroldo Zanela

[quote:0ccdf7bf52=´Gerson S. Livio´]Caros colegas estou com o seguinte problema;

eu tenho um banco de dados e coloquei ele num form... a rotina de
fazer que o ENTER mude o focu eu sei é;
if key=#13 then
begin
dbedit2.setfocus;
key:=0;
end;

mas eu quero saber como eu faço para quando eu der ENTER e ele mudar
o focu, eu pressionar as setas do teclado e ele voltar para o campo novamente ate mesmo os que eu ja dei ENTER.....[/quote:0ccdf7bf52]

Subir e descer com teclas:
FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Case Key of
    VK_DOWN: Perform( WM_NEXTDLGCTL, 0, 0 );
    VK_UP: Perform( WM_NEXTDLGCTL, 0, 1 );
end;

end;


Trocar o tab por enter:

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;



Responder

Gostei + 0

18/03/2003

Anonymous

use assim

para o enter no evento keypress

if Key = #13 then begin;
Key := 0;
Perform(Wm_NextDlgCtl,0,0);
end;

que ele automaticamente aceitará para todos os componentes

paras as setas no evento keydown (seta para cima)

if Key = 38 then Perform(Wm_NextDlgCtl,-1,0);


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar