Individuare il nome della finestra di un programma
Di seguito sono esposti vari modi per conoscere il nome della finestra di un programma.
Indice
Uso della Classe FMain o della parola Me per sapere il nome della finestra del programma Gambas corrente
L'uso della Classe FMain o della parola Me è senz'altro il metodo più veloce per conoscere il nome della finestra del programma principale:
Public Sub Button1_Click() Print FMain.Title End
Uso del Metodo ".GetWindowProperty()" della Classe x11
Conoscendo il numero identificativo della finestra del programma, possiamo ottenerne il nome usando il Metodo ".GetWindowProperty()" della Classe x11, per la quale si dovrà attivare il Componente gb.desktop.x11.
In particolare si dovrà inserire nel primo parametro del predetto Metodo il numero identificativo della finestra (di cui vogliamo ottenere il nome) e nel secondo parametro la costante di tipo stringa "WM_NAME" che rappresenta il nome del tipo di proprietà riferita ad una finestra x11.
Mostriamo un esempio pratico:
Public Sub Button1_Click() Dim id As Integer id = id_della_finestra Print "Titolo della finestra: "; X11.GetWindowProperty(id, "WM_NAME") End
Uso della Classe DesktopWindow
E' possibile ottenere il nome della finestra del programma principale usando due proprietà della classe DesktopWindow.
Uso delle Proprietà ".Name" e ".VisibleName"
La Proprietà ".Name" della Classe Desktop restituisce il nome della finestra come specificata dall'applicazione a cui appartiene quella finestra.
La Proprietà ".VisibleName" restituisce, invece, il nome della finestra visibile, vale a dire il titolo della finestra come visualizzato dal gestore di finestre.
E' il caso di ricordare che il nome visibile della finestra può essere diverso dal nome del programma, quando due o più finestre hanno lo stesso nome.
Conoscere il nome e il nome visibile di una qualsiasi finestra presente sulla Scrivania
Public Sub Button1_Click() Dim dw As DesktopWindow ' Individuiamo la finestra dal suo ID, di cui raccogliere il nome e il nome visibile: With dw = New DesktopWindow(id_della_finestra) Print .Name, .VisibleName End With End
Uso della Proprietà Desktop.ActiveWindow"
La Proprietà statica ".ActiveWindow" della Classe Desktop restituisce il numero identificativo della finestra in quel momento attiva sulla Scrivania.
Public Sub Button1_Click() Dim dw As DesktopWindow ' Individuiamo la finestra attiva corrente di primo livello, di cui raccogliere il nome e il nome visibile: With dw = New DesktopWindow(Desktop.ActiveWindow) Print .Name, .VisibleName End With End
Uso della Proprietà "Application.ActiveWindow" e della Classe Window
Per conoscere il nome della finestra attiva del 'Controllo di tipo "Window" in quel momento attivo del programma Gambas corrente, si potrà utilizzare la Proprietà ".ActiveWindow" della Classe Application congiuntamente con la Classe Window. In tal modo sarà possibile gestire la finestra attiva del programma come un Oggetto Window:
Public Sub Button1_Click() Dim w As Window w = Application.ActiveWindow With w ' Vediamo l'ID della "finestra" attiva del programma: Print .Id, Hex(.Id) ' Vediamo il nome del programma: Print .Name ' Vediamo il nome della "finestra" attiva del programma: Print .Title End With End