Differenze tra le versioni di "Uso della classe DesktopWindow"
Da Gambas-it.org - Wikipedia.
(7 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | La classe <b>DesktopWindow</b> è usata per rappresentare una finestra di primo livello. | + | La classe <b>DesktopWindow</b> è usata, attivando i Componenti ''gb.desktop'' e ''gb.desktop.x11'', per rappresentare una finestra di primo livello. |
In particolare, questa Classe può essere usata per ottenere e gestire la finestra attiva di un programma. | In particolare, questa Classe può essere usata per ottenere e gestire la finestra attiva di un programma. | ||
− | + | Mostriamo qualche esempio pratico: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''Public''' Sub Form_Open() | '''Public''' Sub Form_Open() | ||
Dim i As Integer[] | Dim i As Integer[] | ||
− | <font color=gray>' <i> | + | <font color=gray>' <i>Poiché DesktopWindow è una classe, gli si associa una variabile del tipo di quella Classe:</i></font> |
Dim dw As DesktopWindow | Dim dw As DesktopWindow | ||
− | + | i = Desktop.FindWindow("<font color=gray>Nome_della_finestra</font>") | |
− | + | With dw = New DesktopWindow(i[0]) | |
<font color=gray>' <i>Otteniamo informazioni dalla finestra individuata, e la gestiamo:</i></font> | <font color=gray>' <i>Otteniamo informazioni dalla finestra individuata, e la gestiamo:</i></font> | ||
− | + | Print Hex(.Id), .VisibleName, .Width, .Height | |
− | + | .Move(100, 200, 100, 300) | |
− | + | End With | |
− | + | ||
'''End''' | '''End''' | ||
Riga 56: | Riga 27: | ||
Dim dw As DesktopWindow | Dim dw As DesktopWindow | ||
− | + | Me.Show | |
− | + | With dw = New DesktopWindow(Me.Id) | |
− | + | Print Hex(.Id), .VisibleName, .Width, .Height | |
− | + | .Move(100, 200, 100, 300) | |
− | + | End With | |
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | E' possibile individuare tutte le finestre aperte sulla Scrivania: | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim dw As DesktopWindow | ||
+ | |||
+ | For Each dw In Desktop.Windows | ||
+ | Print "Nome finestra: "; Quote(dw.Name), "X = "; Quote(dw.X), "Y = "; Quote(dw.Y) | ||
+ | Next | ||
'''End''' | '''End''' | ||
Riga 71: | Riga 54: | ||
Dim dw As DesktopWindow | Dim dw As DesktopWindow | ||
Dim w As New Window | Dim w As New Window | ||
− | + | ||
− | + | With w | |
− | |||
− | |||
− | |||
<font color=gray>' ''Assegna un nome di comodo alla finestra (non è indispensabile, e <span style="text-decoration:underline">non</span> modificherà il nome visibile in testa alla finestra):''</font> | <font color=gray>' ''Assegna un nome di comodo alla finestra (non è indispensabile, e <span style="text-decoration:underline">non</span> modificherà il nome visibile in testa alla finestra):''</font> | ||
− | + | .Window.Name = "<i>Nome_finestra</i>" | |
<font color=gray>' ''Se invece si pone solo: <b>.Name</b> senza assegnazione, allora il nome sarà quello della finestra del programma.''</font> | <font color=gray>' ''Se invece si pone solo: <b>.Name</b> senza assegnazione, allora il nome sarà quello della finestra del programma.''</font> | ||
<font color=gray>' ''Carica un'immagine, che sarà poi mostrata appresso in dw:''</font> | <font color=gray>' ''Carica un'immagine, che sarà poi mostrata appresso in dw:''</font> | ||
− | + | .Icon = Picture.Load("<FONT Color=gray>''/percorso/dell'immagine''</font>") | |
<font color=gray>' ''Mostra nella "TextLabel" il nome fittizio precedentemente assegnato alla finestra:''</font> | <font color=gray>' ''Mostra nella "TextLabel" il nome fittizio precedentemente assegnato alla finestra:''</font> | ||
− | + | TextLabel1.Text = .Name | |
− | + | End With | |
+ | |||
+ | dw = New DesktopWindow(w.Handle) <font color=gray>' ''"w.Handle" è il numero identificativo dell'handle della finestra rappresentata dalla variabile "w"''</font> | ||
+ | <font color=gray>' ''Mostra l'immagine assegnata alla Proprietà ".Icon" della finestra :''</font> | ||
+ | PictureBox1.Picture = dw.Icon | ||
+ | '''End''' | ||
+ | |||
+ | La Classe <i>DesktopWindow</i> può rappresentare anche la finestra "attiva" di un programma in quel momento: | ||
+ | '''Public''' Sub Form_Open() | ||
− | + | Dim dw As DesktopWindow | |
− | + | With dw = New DesktopWindow(Desktop.ActiveWindow) <font color=gray>' ''"Desktop.ActiveWindow" è la finestra "attiva" di un programma in quel momento:''</font> | |
− | dw = New DesktopWindow(Desktop.ActiveWindow) | + | Print .Desktop |
− | + | Print .FullScreen | |
− | + | Print .Height | |
− | + | Print .Id | |
− | + | Print .Maximized | |
− | + | Print .Name | |
− | + | Print .SkipTaskbar | |
− | + | Print .VisibleName | |
− | + | <font color=gray>' ''Mostra l'eventuale icona della finestra del programma:''</font> | |
− | + | PictureBox1.Picture = .Icon | |
− | + | End With | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | <font color=gray>' | ||
− | |||
− | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | Per assegnare un Form ad uno specifico schermo si userà la Proprietà ".Desktop": | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim dw As DesktopWindow | ||
+ | |||
+ | With dw = New DesktopWindow(Me.Id) | ||
+ | <font color=gray>' ''Spostiamo il Form principale della nostra applicazione sul terzo desktop (indice 2):''</font> | ||
+ | .Desktop = 2 | ||
+ | End With | ||
+ | |||
'''End''' | '''End''' |
Versione delle 17:48, 25 mag 2023
La classe DesktopWindow è usata, attivando i Componenti gb.desktop e gb.desktop.x11, per rappresentare una finestra di primo livello.
In particolare, questa Classe può essere usata per ottenere e gestire la finestra attiva di un programma.
Mostriamo qualche esempio pratico:
Public Sub Form_Open() Dim i As Integer[] ' Poiché DesktopWindow è una classe, gli si associa una variabile del tipo di quella Classe: Dim dw As DesktopWindow i = Desktop.FindWindow("Nome_della_finestra") With dw = New DesktopWindow(i[0]) ' Otteniamo informazioni dalla finestra individuata, e la gestiamo: Print Hex(.Id), .VisibleName, .Width, .Height .Move(100, 200, 100, 300) End With End
Se la finestra è il Form principale dell'applicazione, allora il suo Id si individuerà facilmente:
Public Sub Form_Open() Dim dw As DesktopWindow Me.Show With dw = New DesktopWindow(Me.Id) Print Hex(.Id), .VisibleName, .Width, .Height .Move(100, 200, 100, 300) End With End
E' possibile individuare tutte le finestre aperte sulla Scrivania:
Public Sub Button1_Click() Dim dw As DesktopWindow For Each dw In Desktop.Windows Print "Nome finestra: "; Quote(dw.Name), "X = "; Quote(dw.X), "Y = "; Quote(dw.Y) Next End
La Classe DesktopWindow può rappresentare anche una finestra creata virtualmente con una variabile di tipo "Window":
Public Sub Form_Open()
Dim dw As DesktopWindow
Dim w As New Window
With w
' Assegna un nome di comodo alla finestra (non è indispensabile, e non modificherà il nome visibile in testa alla finestra):
.Window.Name = "Nome_finestra"
' Se invece si pone solo: .Name senza assegnazione, allora il nome sarà quello della finestra del programma.
' Carica un'immagine, che sarà poi mostrata appresso in dw:
.Icon = Picture.Load("/percorso/dell'immagine")
' Mostra nella "TextLabel" il nome fittizio precedentemente assegnato alla finestra:
TextLabel1.Text = .Name
End With
dw = New DesktopWindow(w.Handle) ' "w.Handle" è il numero identificativo dell'handle della finestra rappresentata dalla variabile "w"
' Mostra l'immagine assegnata alla Proprietà ".Icon" della finestra :
PictureBox1.Picture = dw.Icon
End
La Classe DesktopWindow può rappresentare anche la finestra "attiva" di un programma in quel momento:
Public Sub Form_Open() Dim dw As DesktopWindow With dw = New DesktopWindow(Desktop.ActiveWindow) ' "Desktop.ActiveWindow" è la finestra "attiva" di un programma in quel momento: Print .Desktop Print .FullScreen Print .Height Print .Id Print .Maximized Print .Name Print .SkipTaskbar Print .VisibleName ' Mostra l'eventuale icona della finestra del programma: PictureBox1.Picture = .Icon End With End
Per assegnare un Form ad uno specifico schermo si userà la Proprietà ".Desktop":
Public Sub Button1_Click() Dim dw As DesktopWindow With dw = New DesktopWindow(Me.Id) ' Spostiamo il Form principale della nostra applicazione sul terzo desktop (indice 2): .Desktop = 2 End With End