Help: Perform e postmessag para tratamento de tecla ENTER

Delphi

24/06/2004

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.


Gulira

Gulira

Curtidas 0

Respostas

Fred

Fred

24/06/2004

Aonde vc esta colocando este Edit3.Setfocus?


GOSTEI 0
Gulira

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....


GOSTEI 0
POSTAR