Comment augmenter le nombre de messages de la souris sur une image ?
bonjour,
j'aurai besoin d'un petit coup de pouce pour arriver à* faire marcher un source.
ce que je voudrais faire, c'est booster le nombre de message entre la souris et une image bitmap, pour pouvoir dessiner avec plus de fluidité.
j'ai trouvé ce source sur qui marche très bien, mais ça fonctionne avec une fiche et pas une image...
Code:
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
|
private
FAnciennePosXCurseur : integer ;
FAnciennePosYCurseur : integer ;
FCompteurEvenement : integer ;
FInterpolation : boolean ;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
const
N = 20 ; // Nombres de points intermédiaires
var
t : integer ;
Msg : TWMMouseMove ;
begin
if ( FAnciennePosXCurseur<>X ) or (FAnciennePosYCurseur<>Y) then
begin
// Filtrage des positions negatives
if ( X>0 ) and (Y>0 ) then
begin
for t:=0 to N do
begin
// Les points interpolés sont envoyés sous forme négative
// afin d'eviter une récursivité des messages
Msg.XPos := - Trunc( (1.0 - t/N)*FAnciennePosXCurseur + ( t/N * X ));
Msg.YPos := - Trunc( (1.0 - t/N)*FAnciennePosYCurseur + ( t/N * Y ));
PostMessage(form1.Handle, WM_MOUSEMOVE, TMessage(Msg).WParam, TMessage(Msg).LParam) ;
end ;
FAnciennePosXCurseur := X ;
FAnciennePosYCurseur := Y ;
end else
begin
x := abs(X);
y := abs(y);
Canvas.Pen.Color := clRed ; // Evenements interpolés
Canvas.Ellipse(x-20,y-20,x+20,y+20);
end ;
end ;
end; |
donc ce que je modifie:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
l'évènement MouseMove de mon image,
ensuite je suis pas sur pour PostMessage(form1.Handle
par quoi est ce qu'il faut que je remplace ?
form1.Image1.Canvas.Handle ?
j'ai tout essayé mais ça n'a rien donné :?
merci d'avance oops