Ver Mensaje Individual
  #4  
Antiguo 07-06-2006
Yosuun Yosuun is offline
Miembro
 
Registrado: jun 2004
Ubicación: Bilbao-Bizkaia
Posts: 28
Reputación: 0
Yosuun Va por buen camino
Prueba utilizando el componente de applicationeventes e interceptando ONMEssage

Código Delphi [-]
 
  If Msg.message = WM_KEYDOWN Then
     Begin
       If Msg.wParam = VK_Decimal Then
          Begin
            If Screen.ActiveControl is TDBEDIT Then
               Begin
                 IF (Screen.ActiveControl as TDBEDIT).Field.DataType=ftFloat     Then Msg.wParam:=188;
               End;
            If Screen.ActiveControl is TRxDBCalcEDIT Then
               Begin
                 IF (Screen.ActiveControl as TRxDbCalcEDIT).Field.DataType=ftFloat Then Msg.wParam:=188;
               End;
          End;
       If Msg.wParam = VK_Escape Then
          BEgin
             Screen.ActiveForm.Close;
          End;
       If ( (Msg.wParam=VK_RETURN) or
            (Msg.wParam=VK_UP) or
            (Msg.wParam=VK_DOWN) ) and not (Screen.ActiveControl is TButton)
                            and not (Screen.ActiveControl is TRxDBGrid)
                            and not (Screen.ActiveControl is TDBGrid) Then
          Begin
            If (Msg.wParam=VK_RETURN) Then
               Begin
                 Msg.wParam:=0;
                 Screen.ActiveForm.PerForm(WM_NextDlgCtl,0,0);
               End;
            If (Msg.wParam=VK_DOWN) Then
               Begin
                 Msg.wParam:=0;
                 Screen.ActiveForm.PerForm(WM_NextDlgCtl,0,0);
               End;
            If (Msg.wParam=VK_UP) Then
               Begin
                 Msg.wParam:=0;
                 Screen.ActiveForm.PerForm(WM_NextDlgCtl,1,0);
               End;
          End;
     End;


Espero que te sea de ayuda un saludo.

Última edición por roman fecha: 07-06-2006 a las 17:17:49.
Responder Con Cita