Inhaltsverzeichnis

15.4 Klasse DesktopWindow (gb.desktop)

Die Klasse DesktopWindow (gb.desktop) repräsentiert ein Top-Level-Fenster. Objekte der Klasse können Sie so anlegen:

Dim hDesktopWindow As DesktopWindow
hDesktopWindow = New DesktopWindow(Window As Integer)

Es wird aber empfohlen, DesktopWindow-Objekte nicht direkt anzulegen, sondern Zugriff auf ein Top-Level-Fenster über die Eigenschaft Desktop.Windows zu bekommen. Zwei Beispiele sollen das belegen:

Private Function Desktop_FindWindow(sPattern As String) As DesktopWindow[]
  Dim dtWindow As DesktopWindow
  Dim dtWList As New DesktopWindow[]
 
  Desktop.Windows.Refresh()
 
' Desktop.Windows präsentiert als virtuelles Objekt eine Liste aller Top-Level-Fenster
  For Each dtWindow In Desktop.Windows
      If dtWindow.Name Like sPattern Then
         dtWList.Add(dtWindow)
      Endif '  dtWindow.Name Like sPattern ?
  Next ' dtWindow
 
  Return dtWList
End ' Function Desktop_FindWindow(..)
Public Sub btnExample_Click()
  Dim dtWindow As DesktopWindow
 
  Desktop.Windows.Refresh()
 
  For Each dtWindow In Desktop.Windows
    If dtWindow.SkipTaskbar = False Then
       Print "Window.Name = \"" & dtWindow.Name & "\" , X = " & dtWindow.X & " , Y = " & dtWindow.Y
    Endif ' dtWindow.SkipTaskbar = False
  Next ' dtWindow
 
End ' btnExample_Click()

Der letzte Quelltext-Ausschnitt liefert beispielsweise folgende Ausgabe in der Konsole (IDE):

Window.Name = "Gambas Documentation - Desktop.Windows[] (gb.desktop) - Mozilla Firefox" , X = 0 , Y = 24 
Window.Name = "19.7.4.odt - LibreOffice Writer" , X = 0 , Y = 24 
Window.Name = "19.7_Desktop" , X = 0 , Y = 24 
Window.Name = "k19:start [GAMBAS-BUCH 3.5.1] - Mozilla Firefox" , X = 0 , Y = 24 
Window.Name = "propertytest 0.0.15 - Gambas 3" , X = 0 , Y = 24 
Window.Name = "PropertyTest" , X = 304 , Y = 213

15.4.1 Eigenschaften

Ausgewählte Eigenschaften und Methoden der Klasse werden in den folgenden zwei Tabellen aufgeführt und beschrieben:

EigenschaftTypeBeschreibung
Desktop IntegerGibt die Nummer (0..k) des virtuellen Desktops zurück, wo das Fenster sichtbar ist oder setzt die Nummer des Desktops, auf dem das Fenster angezeigt wird.
IconImageGibt das Fenster-Icon zurück.
IdIntegerGibt den X11-Fenster-Identifizierer zurück.
FullScreen BooleanGibt an, ob das Fenster im Vollbild-Status ist oder setzt den Vollbild-Status.
HeightIntegerGibt die Höhe des Fensters an (Pixel).
WidthIntegerGibt die Breite des Fensters an (Pixel).
MaximizedBooleanGibt True zurück, wenn das Fenster maximiert ist oder maximiert das Fenster.
MinimizedBooleanGibt True zurück, wenn das Fenster minimiert ist oder minimiert das Fenster.
NameStringGibt den Namen des Fensters an. Das ist der Fenster-Titel der Anwendung, die dieses Fenster besitzt.
StickyBooleanGibt True zurück, wenn das Fenster auf allen Desktops angezeigt wird oder zeigt das Fenster auf allen Desktops an.
VisibleStringGibt den sichtbaren Namen der Fensters zurück. Das ist der Fenster-Titel wie er vom Fenster-Manager angezeigt wird.
XIntegerGibt die x-Koordinate des Fensters zurück.
YIntegerGibt die y-Koordinate des Fensters zurück.

Tabelle 15.4.1.1: Übersicht ausgewählter Eigenschaften der Klasse DesktopWindow

15.4.2 Methoden

MethodeBeschreibung
Close() Das Fenster wird geschlossen.
GetIcon (Width As Integer, Height As Integer ) As ImageGibt das Fenster-Symbol mit der angegebenen Größe zurück.
Move ( X As Integer, Y As Integer [ , Width As Integer, Height As Integer ] )Das Fenster wird an die Position P(x,y) verschoben und optional in der Größe (Weite) und Höhe geändert.
Refresh()Stellt ein DesktopWindow-Objekt durch Abfragen der Geometrie des Fenster wieder her. Das geschieht bei einem DesktopWatcher.WindowGeometry-Ereignis automatisch.
Resize ( Width As Integer, Height As Integer )Das Fenster wird nur in der Größe (Höhe und Weite) geändert.

Tabelle 15.4.2.1: Ausgewählten Methoden der Klasse DesktopWindow

Weitere Ausführungen zur Klasse DesktopWindow (gb.desktop) finden Sie im Kapitel 15, das neben der Beschreibung der Klasse DesktopWatcher vor allem das praktische Zusammenspiel der beiden Klassen in einem Projekt demonstriert.

Download

Artikel

Download