Correction de la molette dans les dbgrid

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 921 fois - Téléchargée 32 fois

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

Ajouter un commentaire

Commentaires

salago_edition
Messages postés
1
Date d'inscription
vendredi 9 mars 2007
Statut
Membre
Dernière intervention
11 janvier 2013

oui geniale
youhibadelphi
Messages postés
187
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
20 février 2010
3
je crois que c intéréssant.
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Ha bem merci Cirec :)
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Franchement utile, je vais en faire un compo:
il suffit de mettre le compo sur la TForm pour gérer tout ça!
Bravo!
tuxy34
Messages postés
1
Date d'inscription
lundi 7 août 2006
Statut
Membre
Dernière intervention
29 août 2006

Bravo pour le code.
Tout a fonctionné dans mon projet et ce, aussi bien sous Linux avec Kylix 3 que Windows avec Delphi 6.
Merci.

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.