Die (statische) Klasse Mouse (gb.qt4) wird zum Abrufen von Informationen über die Maus verwendet und definiert Konstanten für die Form des Mauszeigers. Neben den Eigenschaften besitzt diese Klasse nur 2 Methoden. Die Klasse Mouse besitzt keine Ereignisse!
Es werden in der folgenden Tabelle nur ausgewählte Maus-Eigenschaften vorgestellt, weil Wesentliches zum Mausrad (MouseWheel) im Kapitel 14.2.3 'Mausrad – MouseWheel' beschrieben wird.
Eigenschaft | Beschreibung |
---|---|
Alt | Gibt True zurück, wenn die ALT-Taste gedrückt wurde |
Control | Gibt True zurück, wenn die Control-Taste gedrückt wurde |
Shift | Gibt True zurück, wenn die SHIFT-Taste gedrückt wurde |
Left | Gibt True zurück, wenn die linke Maus-Taste gedrückt wurde |
Middle | Gibt True zurück, wenn die mittlere Maus-Taste gedrückt wurde |
Right | Gibt True zurück, wenn die rechte Maus-Taste gedrückt wurde |
X | Gibt die relative horizontale Position des Mauszeigers zurück (Integer-Wert) |
Y | Gibt die relative vertikale Position des Mauszeigers zurück (Integer-Wert) |
Meta | Gibt True zurück, wenn die Meta- oder Super-Taste gedrückt wurde |
Forward | Gibt True zurück, wenn das Mausrad nach vorn gedreht wurde |
Tabelle 14.2.1.1.1: Beschreibung ausgewählter Eigenschaften der Klasse 'Mouse'
Die Methode Mouse.Inside gibt True zurück, wenn sich der Maus-Zeiger über der angegebenen Komponente befindet:
Static Function Inside ( Control As Control ) As Boolean
Die Methode Mouse.Move bewegt den Mauszeiger an die definierte xy-Position auf dem Bildschirm:
Static Sub Move ( X As Integer, Y As Integer )
Mauszeiger sind immer an Komponenten gebunden. Gambas verfügt über einen Satz von definierten Mauszeigern und stellt für diese Mauszeiger Konstanten mit hinreichend selbsterklärender Bezeichnung zur Verfügung:
Arrow Blank Cross Custom Default Horizontal Pointing SizeAll SizeE SizeH SizeN SizeNE SizeNESW SizeNW SizeNWSE SizeS SizeSE SizeSW SizeV SizeW SplitH SplitV Text Vertical Wait
Von besonderer Bedeutung sind folgende Konstanten: Mouse.Blank, Mouse.Default, Mouse.Wait und für den Einsatz eigener Mauszeiger Mouse.Custom.
txtValue.Mouse = Mouse.Blank ' Die Komponente Textfeld besitzt keinen Mauszeiger
' Der Standard-Mauszeiger wird durch einen eigenen vorhandenen Mauszeiger ersetzt DrawingArea1.Mouse = Mouse.Custom DrawingArea1.Cursor = New Cursor(Picture["icon:/16/pen"], 0, 15)
Sie können alternativ in der IDE von Gambas den Bild-Editor aufrufen und dort eigene Mauszeiger zeichnen und diese dann für eigene Projekte verwenden:
In der folgenden Prozedur wird der Mauszeiger des Formulars FMain vom Standard-Mauszeiger Mouse.Arrow auf Mouse.Wait umgestellt und nach dem Ende der Ausgaben des Befehls 'ping' wieder auf den Standard-Mauszeiger Mouse.Arrow geändert.
Public Sub btnPingOverShell_Click() Dim sCommand As String SetLEDColor("green") TextArea.Clear FMain.Mouse = Mouse.Wait Wait sCommand = "ping" & Chr(32) & TextBox1.Text & " -c 4" Shell sCommand To TextArea.Text TextArea.Text = gb.newline & TextArea.Text Wait FMain.Mouse = Mouse.Default SetLEDColor("orange") End ' PingOverShell
Dieser Quelltext-Ausschnitt gehört zu einem Programm mit einem Fenster ohne Fensterzeile, das trotzdem komfortabel verschoben werden kann. Die angegebenen Prozeduren nutzen die Eigenschaften Mouse.Left sowie Mouse.X und Mouse.Y:
' Gambas class file ' Kontext-Menü einbauen, um das Programm zu beenden! PUBLIC iDeltaX AS Integer PUBLIC iDeltaY AS Integer PUBLIC SUB Form_Open() FMain.Center END ' Form_Open() PUBLIC SUB Form_MouseDown() IF Mouse.Left THEN iDeltaX = Mouse.X iDeltaY = Mouse.Y ENDIF ' Mouse.Left ? END PUBLIC SUB Form_MouseMove() IF Mouse.Left THEN FMain.Move(FMain.X - iDeltaX + Mouse.X, FMain.Y - iDeltaY + Mouse.Y) ENDIF ' Bei der Maus-Bewegung zusätzlich linke Maustaste gedrückt ? END ' Form_MouseMove()
Hinweise:
Komponente.Mouse ist die Eigenschaft einer Komponente, die nur im Zusammenhang mit dem Mauszeiger betrachtet wird. Sie kennzeichnet, welcher Mauszeiger verwendet werden soll – entweder ein Maus-Zeiger aus dem Bestand von Gambas oder ein eigener Mauszeiger:
FMain.Mouse = Mouse.Wait sCommand = sProgrammName & Chr(32) & TextBox1.Text & " -c 4" Shell sCommand To TextArea.Text TextArea.Text = gb.newline & TextArea.Text FMain.Mouse = Mouse.Default
Auch wenn die Klasse Mouse selbst keine Maus-Ereignisse besitzt, so existieren jedoch in den Klassen für bestimmte Komponenten Ereignisse (Events), die sich auf die Maus beziehen. Diese Ereignisse werden im Kapitel 14.2.2 behandelt.
Artikel