Bonjour,
Sous W10, mon application ne prend en compte FormMouseWheelDown et Up que si je reste au-dessus ma fiche.
Dans ce cas, si mon application est l'application active, la molette de la souris agit dans ma fiche.
Dès que je sors du cadre de ma fiche, la molette agit sur la fenêtre que je survole, alors que mon application est toujours l'application active.
Par exemple, s'il y a un ascenseur dans la fenêtre que je survole (mais qui n'est pas la fenêtre active puisque c'est encore mon appli qui l'est), cet ascenseur va réagir à la molette.
Si je déplace simplement, sans cliquer nulle part, le cirseur sur mon appli, la molette va faire réagir le Memo.
Je n'ai pas ce problème sous W7, W8, et W8.1.
Je mets ce bout de code test simple pour montrer le problème:
(J'ai placé un Memo juste pour visualiser l'effet de la molette)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin Memo1.Clear; end; procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin Memo1.Lines.Add('MousePos.X = ' + IntToStr(MousePos.X) + #13 + #10 + 'MousePos.Y = ' + IntToStr(MousePos.Y)); end; end.
Partager