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
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.