Réponse aux messages indiquant la manipulation de la souris

De RAD Studio
Aller à : navigation, rechercher

Remonter à Gestion des messages liés à la souris ou au clavier

Une méthode MouseDown est une méthode protégée de l'événement OnMouseDown d'un contrôle. Le contrôle lui-même appelle MouseDown en réponse au message Windows indiquant la manipulation de la souris. Lorsque vous redéfinissez la méthode MouseDown héritée, vous pouvez inclure du code apportant d'autres réponses en plus de l'appel à l'événement OnMouseDown.

Pour redéfinir MouseDown, ajoutez la méthode MouseDown à la classe TDBCalendar :



 type
   TDBCalendar = class(TSampleCalendar);
    .
    .
    .
   protected
     procedure MouseDown(Button: TButton, Shift: TShiftState, X: Integer, Y: Integer);
       override;
    .
    .
    .
   end;
 procedure TDBCalendar.MouseDown(Button: TButton; Shift: TShiftState; X, Y: Integer);
 var
   MyMouseDown: TMouseEvent;
 begin
   if not ReadOnly and FDataLink.Edit then
     inherited MouseDown(Button, Shift, X, Y)
   else
   begin
     MyMouseDown := OnMouseDown;
     if Assigned(MyMouseDown then MyMouseDown(Self, Button, Shift, X, Y);
   end;
 end;



 
 // fichier en-tête
 class PACKAGE TDBCalendar : public TSampleCalendar
 {
 .
 .
 .
 protected:
     virtual void __fastcall MouseDown(TMouseButton Button,  TShiftState Shift, int X,       int Y);
     .
     .
     .
 };



 
 // fichier d'implémentation
 void __fastcall TDBCalendar::MouseDown(TMouseButton Button,  TShiftState Shift, int  X,   int Y)
 {
   TMouseEvent MyMouseDown;                               // déclare le type d'événement
   if (!FReadOnly && FDataLink->Edit())                   // si le champ peut être modifié
     TSampleCalendar::MouseDown(Button, Shift, X, Y);   // appelle MouseDown héritée
   else
   {
     MyMouseDown = OnMouseDown;                          // affecte l'événement OnMouseDown
     if (MyMouseDown != NULL) MyMouseDown(this, Button,  // exécute le code contenu dans...
        Shift, X, Y);                                    // ...le gestionnaire d'événement OnMouseDown
   }
 }



Lorsque MouseDown répond à un message indiquant la manipulation de la souris, la méthode MouseDown héritée est appelée uniquement si la propriété ReadOnly du contrôle est False et si l'objet lien de données est en mode édition, c'est-à-dire si le champ peut être modifié. Si le champ ne peut être modifié, le code mis par le programmeur dans le gestionnaire de l'événement OnMouseDown, s'il en existe un, est exécuté.