Ver Mensaje Individual
  #16  
Antiguo 30-03-2012
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Reputación: 22
marcial Va por buen camino
Vaya, si que se puede. Lo dejo por si a alguien le interesa:

En las Private Declarations
Código Delphi [-]
    { Private declarations }
    procedure DBGrid1PillaLaRueda(var Message: TMessage);
       procedure MMouseEvent(var Msg: TMsg; var Handled: Boolean); {SCROLL DEL DBGRID}


Despues de los Uses y antes de {SR *.DFM}
Código Delphi [-]
type
TomaInvento = class(TControl);


El el OnCreate de la Form
Código Delphi [-]
DBGrid1.WindowProc := DBGrid1PillaLaRueda;
   Application.OnMessage := MMouseEvent; {PARA EL SCROLL DEL DBGRID}

El procedure del Scroll Vertical
Código Delphi [-]
procedure TForm3.DBGrid1PillaLaRueda(var Message: TMessage);
 var
   Cuanto : short;
 begin

   if (Message.Msg = WM_MOUSEWHEEL) then begin
     Cuanto:=HIWORD(Message.WParam);
     Cuanto:=Cuanto div 120;
     DbGrid1.DataSource.DataSet.MoveBy(-Cuanto);

   end else TomaInvento(DBGrid1).WndProc(Message);
 end;

Y por último, después del procedure Vertical, el procedure de Ecfisa para el Scroll Horizontal

Así tenemos los Scroll Vertical y Horizontal sin usar las Barras de Desplazamiento

Muchas gracias
Responder Con Cita