EvtMouse
EvtMouse
Maustaste
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformationen - aButton:
intMaustaste - Resultat:
logicEreignis an auslösendes Objekt weitergeben? - Siehe: Liste , Objekte , Ereignisbefehle
Die angegebene Prozedur wird ausgeführt, wenn mit einer Maustaste auf das Objekt geklickt wurde.
Beim Objekt Statusbar wird das Ereignis nicht ausgeführt, wenn in dem Ereignis EvtMouseItem eine Funtion eingetragen ist.
Definition des Funktionskopfes:
sub EvtMouse
(
aEvt : event; // Ereignis
aButton : int; // Maustaste
)
: logic; // Ereignis an auslösendes Objekt weitergeben?
{
return(true);
}
aEvt
In aEvt vom Typ event wird unter anderem der Deskriptor des Objekts übergeben, welches das Ereignis ausgelöst hat. Dies ist das Objekt, in dem die Ereignisfunktion eingetragen wurde.
aButton
aButton enthält die Taste oder die Tastenkombination, die das Ereignis auslöste:
_WinMouseLeft: linke Maustaste_WinMouseRight: rechte Maustaste_WinMouseMiddle: mittlere Maustaste_WinMouseMask: linke, rechte oder mittlere Maustaste_WinMouseDouble: Doppelklick_WinMouseShift:-Taste
_WinMouseCtrl:-Taste
Die Konstanten können miteinander kombiniert werden. Wurde zum Beispiel die -Taste gedrückt und mit der linken Maustaste ein Doppelklick ausgeführt, steht im Übergabeparameter
aButton der Wert _WinMouseLeft|_WinMouseDouble|_WinMouseShift.
Über die Konstante _WinMouseMask können zusätzlich gedrückte Tasten ausgeblendet werden (vgl. Beispiel).
Resultat
Wird true zurückgegeben, wird das Ereignis an das auslösende Objekt weitergeleitet, ansonsten nicht.
Wird beim CtxDocEdit true zurückgegeben, wird anschließend das Ereignis EvtMouseItem ausgelöst.
Beispiele:
// Doppelklick
if (aButton & _WinMouseDouble > 0)
...
switch (aButton & _WinMouseMask)
{
// linke Maustaste
case _WinMouseLeft : ...
// rechte Maustaste
case _WinMouseRight : ...
// mittlere Maustaste
case _WinMouseMiddle : ...
}
Bei der Verwendung des Debuggers in Verbindung mit Breakpoints sowie den Anweisungen DbgStop () und DbgControl ( _DbgStop ) kann kein Doppelklick ausgelöst werden. Bei einem Doppelklick werden immer zwei Ereignisse ausgelöst: Da das Windows System nach einem erfolgten Klick nicht weiss, ob innerhalb kurzer Zeit ein weiterer Klick erfolgt, wird zunächst ein Ereignis für den Klick und anschließend das Ereignis für den Doppelklick ausgelöst. Wird die Verarbeitung in dem Ereignis angehalten, vergeht zwischen den beiden Klicks zu viel Zeit, um sie noch als einen Doppelklick zu erkennen.