Help: Perform e postmessag para tratamento de tecla ENTER
Pessoal estou com um problema aqui. é o seguinte:
Eu utilizo o
if Key=#13 then
begin
Key := 0;
Perform(WM_NEXTDLGCTL, 0, 0);
// ou postmessage(handle,WM_keydown,vk_tab,1);
end;
no form tratar a tecla enter como tab. O problema acontece porque tenho varias edits ex: edit1, edit, edit3 e edit4 entao se eu fizer edit3.setfocus no evento onKeyDown no edit1 quando eu dar um enter o cursor fica no edit4 ´como se eu tivesse dado edit4.setfocus´ mas na verdade teria que estar no edit3. Como eu poderia fazer para cursor ir par o edit3.
Eu utilizo o
if Key=#13 then
begin
Key := 0;
Perform(WM_NEXTDLGCTL, 0, 0);
// ou postmessage(handle,WM_keydown,vk_tab,1);
end;
no form tratar a tecla enter como tab. O problema acontece porque tenho varias edits ex: edit1, edit, edit3 e edit4 entao se eu fizer edit3.setfocus no evento onKeyDown no edit1 quando eu dar um enter o cursor fica no edit4 ´como se eu tivesse dado edit4.setfocus´ mas na verdade teria que estar no edit3. Como eu poderia fazer para cursor ir par o edit3.
Gulira
Curtidas 0
Respostas
Fred
24/06/2004
Aonde vc esta colocando este Edit3.Setfocus?
GOSTEI 0
Gulira
24/06/2004
no evendo OnKeyDown do edit1
para ser mais exato
procedure Tfrm1.edt1KeyDown(Sender: TObject; var Key: Word; Shift: ShiftState);
begin
if ((key = 13) and (trim(edit1.Text) <> ´´)) then
begin
edit2.text := ´teste´;
edit3.setfocus
end;
end;
Ai acontece o seguinte ele executa o edit3.setfocus e depois vai para o onKeyPress do formulario para fazer o Perform(WM_NEXTDLGCTL, 0, 0);
Dai eu ja tentei te tudo e nao consigo achar alguma luz....
para ser mais exato
procedure Tfrm1.edt1KeyDown(Sender: TObject; var Key: Word; Shift: ShiftState);
begin
if ((key = 13) and (trim(edit1.Text) <> ´´)) then
begin
edit2.text := ´teste´;
edit3.setfocus
end;
end;
Ai acontece o seguinte ele executa o edit3.setfocus e depois vai para o onKeyPress do formulario para fazer o Perform(WM_NEXTDLGCTL, 0, 0);
Dai eu ja tentei te tudo e nao consigo achar alguma luz....
GOSTEI 0