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