Fórum Help: Perform e postmessag para tratamento de tecla ENTER #239430

24/06/2004

0

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

Responder

Posts

24/06/2004

Fred

Aonde vc esta colocando este Edit3.Setfocus?


Responder

Gostei + 0

24/06/2004

Gulira

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


Responder

Gostei + 0

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

Aceitar