En Delphi, les composants visuels ne possèdent pas l'évènement OnMouseOver et OnMouseOut, pas comme les autres langages comme Java.
Donc, on associe les évènements existants: OnMouseMove, OnMouseUp, OnMouseDown. Le composant TLabel possède nativement les évènements OnMouseEnter et OnMouseLeave.
C'est facile pour faire un drag & drop ou tracer un rectangle:
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
 
StartX,StartY:Integer;{Déclarer au début de l'unitéde la fiche}
 
{Utiliser ce code comme le gestionnaire d'événement OnMouseDown de la fiche :}
 
procedure TForm1.FormMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
StartX :=X;
StartY :=Y;
end;
 
{Utiliser ce code comme le gestionnaire d'événement OnMouseUp de la fiche :}
 
procedure TForm1.FormMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
Form1.Canvas.Rectangle(StartX,StartY,X,Y);
StatusBar1.Panels[0].Text :='';
StatusBar1.Panels[1].Text :='';
StatusBar1.Panels[2].Text :='';
StatusBar1.Panels[3].Text :='';
end;
Mais comment faire pour OnMouseOver? ça me creuse l'esprit depuis un moment!