Correction de la molette dans les dbgrid

Contenu du snippet

Si comme moi vous en avez marre des mauvaises interprétations des mouvements de la roulette dans les DBGrid alors voila une source pour le corriger dans tous les composant DBGrid d'une Form.

Source / Exemple :


procedure TForm1.DBGridMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
{ROULETTE Down}
begin
  Handled := True;
  if sender is TDBGrid then
    TDBGrid(Sender).Datasource.DataSet.Next;
end;

procedure TForm1.DBGridMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
{ROULETTE Up}
begin
  Handled := True;
  if sender is TDBGrid then
    TDBGrid(Sender).Datasource.DataSet.Prior;
end;

procedure TForm1.GereMolettedansDBgrid(Sender: TWinControl);
//procedure récursive qui cherche les DBGrid dans tous les controles
var
  i: integer;
begin
  with Sender do
    begin
      //ShowMessage(Sender.Name);
      for i := 0 to ControlCount - 1 do
        begin
          if Controls[i] is TDBGrid then
            with TDrawGrid(Controls[i]) do
              begin
              //modifie les procédure de la roulette
                OnMouseWheelDown := DBGridMouseWheelDown;
                OnMouseWheelUp := DBGridMouseWheelUp;
              end
          else if Controls[i] is TWinControl then
            if TWinControl(Controls[i]).ControlCount > 0 then
              GereMolettedansDBgrid(TWinControl(Controls[i]));
        end;
    end;
end;

//le mieux est de mettre ca dans le Form1.create
procedure TForm1.Button1Click(Sender: TObject);
begin
  GereMolettedansDBgrid(Form1);
end;

Conclusion :


je prépare actuellement un petit logiciel de récupération programme TV, Météo, Annuaire inversé que j'espère mettre sur ce site d'ici 2 semaines. alors à bientot

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.