User Tools

Site Tools


k14:k14.2:k14.2.1:start

14.2.1 Class Mouse

The (static) class Mouse (gb.qt4) is used to retrieve information about the mouse and defines constants for the shape of the mouse pointer. In addition to the properties, this class has only 2 methods. The class Mouse has no events!

14.2.1.1 Mouse Properties

Only selected mouse properties are presented in the following table, because essential information about the mouse wheel (MouseWheel) is described in → chapter 14.2.3 Mouse Wheel - MouseWheel.

PropertyDescription
AltReturns True if ALT key is pressed
ControlReturns True if the Control key has been pressed
ShiftReturns True if the SHIFT key is pressed
LeftReturns True if the left mouse button is pressed
MiddleReturns True if the middle mouse button is pressed
RightReturns True if the right mouse button is pressed
XReturns the relative horizontal position of the mouse cursor (integer value)
YReturns the relative vertical position of the mouse cursor (integer value)
MetaReturns True if the Meta or Super key has been pressed
ForwardReturns True if the mouse wheel is turned forward

Table 14.2.1.1.1: Description of selected properties of the 'Mouse' class

14.2.1.2 Methods of the class Mouse

The Mouse.Inside method returns True when the mouse pointer is over the specified component:

Static Function Inside ( Control As Control ) As Boolean

The Mouse.Move method moves the mouse pointer to the defined xy position on the screen:

Static Sub Move ( X As Integer, Y As Integer )

14.2.1.3 Mouse pointer - constants

Mouse pointers are always bound to components. Gambas has a set of defined mouse pointers and provides constants with sufficient self-explanatory names for these mouse pointers:

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

The following constants are particularly important: Mouse.Blank, Mouse.Default, Mouse.Wait and for using your own mouse cursor Mouse.Custom.

txtValue.Mouse = Mouse.Blank ' The Text Field component does not have a mouse pointer
' The default mouse pointer is replaced by your own existing mouse pointer
DrawingArea1.Mouse = Mouse.Custom 
DrawingArea1.Cursor = New Cursor(Picture["icon:/16/pen"], 0, 15) 

Alternatively, you can call the image editor in the Gambas IDE and draw your own mouse pointers and use them for your own projects:

Cursor

In the following procedure, the mouse pointer of the form FMain is switched from the standard mouse pointer Mouse.Arrow to Mouse. Wait and after the output of the command 'ping' is changed back to the standard mouse pointer Mouse.Arrow.

Public Sub btnPingOverShell_Click() 
  Dim sCommand As String 
 
  SetLEDColor("green") 
  TextArea.Clear 
  Wait 
  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 
  SetLEDColor("orange") 
End ' PingOverShell

This part of the source code belongs to a program with a window without window line, which can still be moved comfortably. The specified procedures use the properties Mouse.Left, Mouse.X and Mouse.Y:

' Gambas class file 
' Context menu to exit the program! 
 
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 ' Left mouse button pressed during mouse movement?
END ' Form_MouseMove() 

Hints:

Mouse is the property of a component that is only viewed in conjunction with the mouse pointer. It indicates which mouse pointer is to be used - either a mouse pointer from the collection of gambas or a mouse pointer of your own:

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 

Even if the class Mouse itself does not have mouse events, there are events in the classes for certain components that refer to the mouse. These events are dealt with in chapter 14.2.2.2.

Download

Articles

Download


14.2.1 Klasse Mouse

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!

14.2.1.1 Maus-Eigenschaften

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 Mouse.Beschreibung
AltGibt True zurück, wenn die ALT-Taste gedrückt wurde
ControlGibt True zurück, wenn die Control-Taste gedrückt wurde
ShiftGibt True zurück, wenn die SHIFT-Taste gedrückt wurde
LeftGibt True zurück, wenn die linke Maus-Taste gedrückt wurde
MiddleGibt True zurück, wenn die mittlere Maus-Taste gedrückt wurde
RightGibt True zurück, wenn die rechte Maus-Taste gedrückt wurde
XGibt die relative horizontale Position des Mauszeigers zurück (Integer-Wert)
YGibt die relative vertikale Position des Mauszeigers zurück (Integer-Wert)
MetaGibt True zurück, wenn die Meta- oder Super-Taste gedrückt wurde
ForwardGibt True zurück, wenn das Mausrad nach vorn gedreht wurde

Tabelle 14.2.1.1.1: Beschreibung ausgewählter Eigenschaften der Klasse 'Mouse'

14.2.1.2 Methoden 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 )

14.2.1.3 Maus-Zeiger – Konstanten

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:

Cursor

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 
  Wait 
  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 
  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.

Download

Artikel

Download

The website uses a temporary session cookie. This technically necessary cookie is deleted when the browser is closed. You can find information on cookies in our privacy policy.
k14/k14.2/k14.2.1/start.txt · Last modified: 02.07.2018 (external edit)

Page Tools