Chicos disculpen que los siga molestando y muchas gracias por contestarme siempre....bien sigo con el problema de scroll del mousse,y seleccion en un dbgrid,bien esta casi solucionado,logro llevar el movimiento del scroll del mousse y que puedan seleccionar la fila que se quiere atraves de el siguiente codigo (que de paso si a alguien le sirve lo posteo),bien el unico problema que existe es que el foco queda en la primer fila...y si un usuario quiere usar de entrada el scroll del mousse este queda congelado...no funciona en la primer fila del dbgrid....hasta que el usuario no seleccione alguna fila...y ahy si recien se activa la rueda del scroll..bueno desde ya muchisimas gracias!!
Código Delphi
[-]
procedure TFrm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if gdSelected in State then
DbGrid1.Canvas.Brush.Color := clSilver;
self.DBGrid1.Canvas.Font.Color:= clNavy;
if gdFocused in State then
DbGrid1.Canvas.Font.Color := clBlue;
DbGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TFrm.DBGrid1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
gc: TGridCoord;
begin
gc := DBGrid1.MouseCoord(x, y) ;
MouseOverRow := gc.Y;
end;
procedure TFrm.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;
procedure TTareasPendientesFrm.FormCreate(Sender: TObject);
begin
DBGrid1.WindowProc := DBGrid1PillaLaRueda;
end;