Auf Maustastenbotschaften antworten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Maustasten- und Tastendruckbotschaften behandeln

MouseDown ist eine als protected deklarierte Methode für das Ereignis OnMouseDown des Steuerelements. Das Steuerelement selbst ruft MouseDown als Antwort auf die Windows-Maustastenbotschaft auf. Beim Überschreiben der geerbten Methode MouseDown können Sie Quelltext einfügen, der zusätzlich zum Aufruf des Ereignisses OnMouseDown weitere Reaktionen definiert.

Fügen Sie zum Überschreiben von MouseDown der Klasse TDBCalendar die Methode MouseDown hinzu:

 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;
 
 // Header-Datei<?Pub Caret?>
 class PACKAGE TDBCalendar : public TSampleCalendar
 {
 .
 .
 .
 protected:
     virtual void __fastcall MouseDown(TMouseButton Button, TShiftState Shift, int X, int Y);
     .
     .
     .
 };
 // Implmentierungsdatei
 void __fastcall TDBCalendar::MouseDown(TMouseButton Button,  TShiftState Shift, int  X,   int Y)
 {
   TMouseEvent MyMouseDown;                               // Ereignistyp deklarieren
   if (!FReadOnly && FDataLink->Edit())                   // Falls das Feld bearbeitbar ist,
     TSampleCalendar::MouseDown(Button, Shift, X, Y);   // geerbte Version MouseDown aufrufen
   else
   {
     MyMouseDown = OnMouseDown;                          // Behandlungsroutine zuweisen
     if (MyMouseDown != NULL) MyMouseDown(this, Button,  // Code der Routine...
        Shift, X, Y);                                    // ...OnMouseDown ausführen
   }
 }

Wenn MouseDown auf Maustastenbotschaften antwortet, wird die geerbte Methode MouseDown nur unter der Voraussetzung aufgerufen, dass das Feld bearbeitet werden kann. Dazu muss die Eigenschaft ReadOnly des Steuerelements den Wert False haben, und das Datenverknüpfungsobjekt muss sich im Bearbeitungsmodus befinden. Kann das Feld dagegen nicht bearbeitet werden, wird der Quelltext ausgeführt, den der Programmierer in die Ereignisbehandlungsroutine für OnMouseDown eingefügt hat.

Siehe auch