Correction de la molette dans les dbgrid

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 541 fois - Téléchargée 34 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
11 janv. 2013 à 22:30
oui geniale
youhibadelphi Messages postés 187 Date d'inscription jeudi 16 octobre 2008 Statut Membre Dernière intervention 20 février 2010 3
4 sept. 2009 à 13:14
je crois que c intéréssant.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
15 avril 2008 à 20:08
Ha bem merci Cirec :)
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
15 avril 2008 à 18:40
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
29 août 2006 à 00:02
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.