Tenho um procedimento que verifica as mensagens enviadas para o windows, nesse procedimento ele veifica se a tecla precionada for tab ele não deixa mudar de campo, se for enter ele muda o foco de campo:
Procedure TForm1.CMDialogKey(Var Msg: TWMKEY);
begin
if ((ActiveControl is TDBEdit) or (ActiveControl is TEdit) or (ActiveControl is TDBComboBox) or (ActiveControl is TComboBox)
or (ActiveControl is TDBLookupComboBox) or (ActiveControl is TDBMemo)) and (TEdit(ActiveControl).Focused) then
begin
if (Msg.Charcode = VK_TAB) then
Msg.Result := 0
else
if (Msg.Charcode = VK_RETURN) then
begin
Msg.Result := -1;
SelectNext(ActiveControl, True , True);
end;
end
else
inherited;
end;
Mas também tenho no meu edit um evento OnKeyDown que só por causa deste código acima ele não executa nada que está no KeyDown, KeyPress ou KeyUp dos componentes, e preciso saber no KeyDown do edit se a tecla for igual a enter ele fazer alguma coisa, mas não faz nada ele simplesmente ignora os eventos onkey.
Como posso fazer para que ele execute primeiro o evento do edit e depois ele faça a execução deste procedimento acima?
Pergunta
Vivendo&Aprendendo
Olá pessoal
Tenho um procedimento que verifica as mensagens enviadas para o windows, nesse procedimento ele veifica se a tecla precionada for tab ele não deixa mudar de campo, se for enter ele muda o foco de campo:
Mas também tenho no meu edit um evento OnKeyDown que só por causa deste código acima ele não executa nada que está no KeyDown, KeyPress ou KeyUp dos componentes, e preciso saber no KeyDown do edit se a tecla for igual a enter ele fazer alguma coisa, mas não faz nada ele simplesmente ignora os eventos onkey.
Como posso fazer para que ele execute primeiro o evento do edit e depois ele faça a execução deste procedimento acima?
Alexandre
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.