Setas do teclado.....................URGENTE

Delphi

18/03/2003

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

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

18/03/2003

[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;



GOSTEI 0
Anonymous

Anonymous

18/03/2003

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);


GOSTEI 0
POSTAR