Trocar Tab por Enter

17/05/2003

1

Pessoal por favor me ajudem,

Eu coloquei o código abaixo nos dbEdits e funcionou perfeitamente, mas quando o fóco chega no dbEdit que está dentro de um dbCtrlGrid e eu pressiono Enter ele sai de dentro da dbCtrlGrid ao invés de percorrer pelos campos do dbCtrlGrid, pois com Tab funciona.

if Key = #13 then
begin;
Key := 0;
Perform(Wm_NextDlgCtl,1,0);
end;

Obrigado desde já.....

Marcelo Ribeiro


Responder

Posts

17/05/2003

Welington

uses QStdCtrls, QGrids;

(*
Esta procedure é genérica para toda a aplicacao. Tem a finalidade de mudar
de campos com ENTER e Seta-Abaixo e retornar para o campo anterior com a
Seta-Acima.
*)
procedure MudarComEnter(var Msg: TMsg; var Handled: Boolean);
begin
if not ((Screen.ActiveControl is TCustomMemo) or
(Screen.ActiveControl is TCustomGrid) or
(Screen.ActiveForm.ClassName = ´TMessageForm´)) then
begin
if Msg.message = WM_KEYDOWN then
begin
case Msg.wParam of
VK_RETURN,VK_DOWN : Screen.ActiveForm.Perform(WM_NextDlgCtl,0,0);
VK_UP : Screen.ActiveForm.Perform(WM_NextDlgCtl,1,0);
end;
end;
end;
end;

//--> Ligar as mensagens do Windows à procedure para tratar o Enter
Application.OnMessage := MudarComEnter;

//--> Desliga procedure MudarComEnter
Application.OnMessage := Nil;


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira