Estoy haciendo pruebas de como detectar el TAB dependiendo de que componente tenga el control en ese momento, ahora todo bien, pero, necesito llamar un evento por ejemplo del OnKeyDown, porque aqui hago las validaciones de todos los componentes(Edit's, bdEdit's, MaskEdit's, dbGrid) que tengo en un formulario para cachar el TAB y hacer que sea un ENTER, hago esto, porque estoy llamando MANUALMENTE el OnExit en el OnKeyDown de cada componente, tengo el siguiente código que hace esto:
Código:
Private
procedure TfFacturas.CMDialogKey(var Message: TCMDialogKey);
Implementation
procedure TfFacturas.CMDialogKey(var Message: TCMDialogKey);
begin
// Comprobar estado
if GetKeyState(VK_MENU) >= 0 then begin
with Message do begin
// Segun la tecla
case CharCode of
VK_TAB:begin
if ActiveControl.Name='edSerie' then begin
if length(edSerie.text)=2 then
edSerieExit(sender)
else edSerie.SetFocus;
end else
if ActiveControl.Name='edFolio' then begin
edFolioExit(sender)
end else
if ActiveControl.Name='edNumCli' then begin
if length(edNumCli.text)>0 then
edNumCliExit(sender)
else edNumCli.SetFocus;
end else
if ActiveControl.Name='maFecEmision' then begin
bdTipoPago.SetFocus;
end else
if ActiveControl.Name='maFecVenci' then begin
bdOrdenCompra.SetFocus;
end else
if ActiveControl.Name='bdOrdenCompra' then
bdIvA.SetFocus
else
if ActiveControl.Name='edVendedor' then
if edVendedor.text<>'' then begin
edVendedorExit(Sender);
gridFac.SetFocus;
end else
edVendedor.SetFocus;
end; //end..VK_TAB
end; // end..case
end; // end..with
end; // end..if
// Método padre para que salte al siguiente control,...
inherited;
end;
Este procedimiento que es para cachar el TAB, por lo que NO puedo llamar al EVENTO ONKEYDOWN para evitarme de Escribir las validaciones que tengo.
Que puedo hacer???? de antemano Gracias.