Differenze tra le versioni di "Uso della classe DesktopWatcher"
Da Gambas-it.org - Wikipedia.
(Nuova pagina: La classe '''DesktopWatcher''' osserva il desktop sullo schermo. Essa consente all'utente di essere in grado di rilevare l'attività dello schermo con i gestori di eventi: ''variabileT...) |
|||
(13 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | La classe '''DesktopWatcher''' osserva il desktop sullo schermo. Essa consente all'utente di essere in grado di rilevare l'attività dello schermo con i gestori di eventi: | + | La classe '''DesktopWatcher''', utilizzabile attivando i Componenti ''gb.desktop'' e ''gb.desktop.x11'', osserva il desktop sullo schermo. Essa consente all'utente di essere in grado di rilevare l'attività dello schermo con i gestori di eventi: |
− | + | variabileTipoDesktopWatcher_NomeEvento([parametro-eventuale]) | |
+ | ''DesktopWatcher'' solleva i seguenti Eventi: | ||
+ | * "_ActiveWindow()": l'Evento è sollevato se si cambia desktop, ossia se si passa ad un altro desktop dello schermo; e se la finestra attiva è cambiata. Per sapere ora quale è, usare ''Desktop.ActiveWindow'' . | ||
+ | * "_Change()": il desktop virtuale corrente è cambiato. | ||
+ | * "_Count()": il numero dei desktop virtuali è cambiato. | ||
+ | * "_Geometry()": la geometria del desktop è mutata. | ||
+ | * "_WindowGeometry()": l'evento è sollevato, se una specifica finestra è stata spostata o ridimensionata. | ||
+ | * "_WindowIcon()": l'evento è sollevato, se l'icona di una specifica finestra è cambiata. | ||
+ | * "_WindowName()": l'evento è sollevato, se il nome o il nome visibile di una specifica finestra è cambiato. | ||
+ | * "_WindowState()": l'evento è sollevato, se lo stato di una specifica finestra è cambiato. | ||
+ | * "_Windows()": l'evento viene sollevato se l'elenco delle finestre è cambiato, cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato. Per scorrere la lista e vedere quali finestre vi sono, usare ''Desktop.Windows'' . | ||
− | + | ===Esempi pratici=== | |
− | + | Private dw As DesktopWatcher | |
− | + | Public Sub Form_Open() | |
− | <FONT color= | + | With dw = New DesktopWatcher(Me) As "dw" |
− | + | <FONT color=gray>' ''Restituisce o imposta se l'oggetto DesktopWatcher guarda solo la finestra principale:''</font> | |
+ | .RootWindow = True | ||
+ | End With | ||
− | + | End | |
− | <FONT color= | + | <FONT color=gray>' ''Se avvengono dei cambiamenti all'interno del desktop, ma anche:'' |
' ''se si cambia desktop, ossia se si passa ad un altro desktop dello schermo;'' | ' ''se si cambia desktop, ossia se si passa ad un altro desktop dello schermo;'' | ||
' ''se viene spostato il focus da una finestra di un programma alla finestra di un altro programma;'' | ' ''se viene spostato il focus da una finestra di un programma alla finestra di un altro programma;'' | ||
' ''allora viene sollevato questo evento:''</font> | ' ''allora viene sollevato questo evento:''</font> | ||
− | + | Public Sub dw_ActiveWindow() | |
− | + | TextArea1.Text &= "Modifica all'interno del Desktop !\n" | |
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | <FONT color=gray>' ''Se si cambia desktop, ossia se si passa ad un altro desktop dello schermo, allora viene sollevato questo evento:</font> | ||
+ | Public Sub dw_Change() | ||
+ | |||
+ | TextArea1.Text &= "Cambio Desktop !\n" | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | <FONT color=gray>' ''Questo evento viene sollevato se l'elenco delle finestre è cambiato, cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato:''</font> | ||
+ | Public Sub dw_Windows() | ||
+ | |||
+ | TextArea1.Text &= "Evento _Windows !\n" | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | In quest'altro esempio verrà sollevato l'Evento "_WindowGeometry()" della Classe ''DesktopWatcher'', qualora venga modificata una dimensione della finestra del programma: | ||
+ | Private dwt As DesktopWatcher | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | dwt = New DesktopWatcher As "DesktopWatcher" | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DesktopWatcher_WindowGeometry(dwd As DesktopWindow) | ||
+ | |||
+ | Print dwd.W, dwd.H | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | In quest'altro esempio si utilizzerà l'Evento "_Windows()" della Classe ''DesktopWatcher'', per osservare l'apertura della finestra di Dialogo utile per caricare un file. | ||
+ | <BR>In tal caso il "Titolo" della finestra di Dialogo ".OpenFile" dovrà essere "certo" e "univoco". | ||
+ | Private wa As DesktopWatcher | ||
+ | Private dw As DesktopWindow | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
− | ''' | + | <FONT Color=gray>' ''Osserva tutte le finestre, presenti e quelle eventuali future, sulla Scrivania:''</font> |
+ | wa = New DesktopWatcher As "DWatch" | ||
+ | |||
+ | End | ||
− | + | Public Sub Button1_Click() | |
− | |||
− | |||
− | + | With Dialog | |
+ | <FONT Color=gray>' ''Il "Titolo" della finestra di Dialog deve essere <SPAN Style="text-decoration:underline">certo</span> e <SPAN Style="text-decoration:underline">univoco</span>.'' | ||
+ | ' ''(In questo esempio è impostato il titolo: Abcde).''</font> | ||
+ | .Title = "Abcde" | ||
+ | If .OpenFile() Then Return | ||
+ | End With | ||
− | + | End | |
− | <FONT | + | Public Sub DWatch_Windows() <FONT Color=gray>' ''Se la l'elenco delle finestre aperte sulla Scrivania è cambiato...''</font> |
− | |||
− | |||
− | + | <FONT Color=gray>' ''...allora si verifica se si è aperta proprio la finestra "Abcde":''</font> | |
+ | If Desktop.FindWindow("Abcde", Null, Null).Count > 0 Then | ||
+ | <FONT Color=gray>' ''Se è così, allora la finestra di Dialogo, avente Titolo "Abcde", viene ridimensionata:''</font> | ||
+ | With dw = New DesktopWindow(Desktop.FindWindow("Abcde", Null, Null)[0]) | ||
+ | .Resize(Screen.AvailableWidth, Screen.AvailableHeight) | ||
+ | End With | ||
+ | Endif | ||
− | + | End |
Versione attuale delle 15:30, 22 giu 2024
La classe DesktopWatcher, utilizzabile attivando i Componenti gb.desktop e gb.desktop.x11, osserva il desktop sullo schermo. Essa consente all'utente di essere in grado di rilevare l'attività dello schermo con i gestori di eventi:
variabileTipoDesktopWatcher_NomeEvento([parametro-eventuale])
DesktopWatcher solleva i seguenti Eventi:
- "_ActiveWindow()": l'Evento è sollevato se si cambia desktop, ossia se si passa ad un altro desktop dello schermo; e se la finestra attiva è cambiata. Per sapere ora quale è, usare Desktop.ActiveWindow .
- "_Change()": il desktop virtuale corrente è cambiato.
- "_Count()": il numero dei desktop virtuali è cambiato.
- "_Geometry()": la geometria del desktop è mutata.
- "_WindowGeometry()": l'evento è sollevato, se una specifica finestra è stata spostata o ridimensionata.
- "_WindowIcon()": l'evento è sollevato, se l'icona di una specifica finestra è cambiata.
- "_WindowName()": l'evento è sollevato, se il nome o il nome visibile di una specifica finestra è cambiato.
- "_WindowState()": l'evento è sollevato, se lo stato di una specifica finestra è cambiato.
- "_Windows()": l'evento viene sollevato se l'elenco delle finestre è cambiato, cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato. Per scorrere la lista e vedere quali finestre vi sono, usare Desktop.Windows .
Esempi pratici
Private dw As DesktopWatcher Public Sub Form_Open() With dw = New DesktopWatcher(Me) As "dw" ' Restituisce o imposta se l'oggetto DesktopWatcher guarda solo la finestra principale: .RootWindow = True End With End ' Se avvengono dei cambiamenti all'interno del desktop, ma anche: ' se si cambia desktop, ossia se si passa ad un altro desktop dello schermo; ' se viene spostato il focus da una finestra di un programma alla finestra di un altro programma; ' allora viene sollevato questo evento: Public Sub dw_ActiveWindow() TextArea1.Text &= "Modifica all'interno del Desktop !\n" End ' Se si cambia desktop, ossia se si passa ad un altro desktop dello schermo, allora viene sollevato questo evento: Public Sub dw_Change() TextArea1.Text &= "Cambio Desktop !\n" End ' Questo evento viene sollevato se l'elenco delle finestre è cambiato, cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato: Public Sub dw_Windows() TextArea1.Text &= "Evento _Windows !\n" End
In quest'altro esempio verrà sollevato l'Evento "_WindowGeometry()" della Classe DesktopWatcher, qualora venga modificata una dimensione della finestra del programma:
Private dwt As DesktopWatcher Public Sub Form_Open() dwt = New DesktopWatcher As "DesktopWatcher" End Public Sub DesktopWatcher_WindowGeometry(dwd As DesktopWindow) Print dwd.W, dwd.H End
In quest'altro esempio si utilizzerà l'Evento "_Windows()" della Classe DesktopWatcher, per osservare l'apertura della finestra di Dialogo utile per caricare un file.
In tal caso il "Titolo" della finestra di Dialogo ".OpenFile" dovrà essere "certo" e "univoco".
Private wa As DesktopWatcher Private dw As DesktopWindow Public Sub Form_Open() ' Osserva tutte le finestre, presenti e quelle eventuali future, sulla Scrivania: wa = New DesktopWatcher As "DWatch" End Public Sub Button1_Click() With Dialog ' Il "Titolo" della finestra di Dialog deve essere certo e univoco. ' (In questo esempio è impostato il titolo: Abcde). .Title = "Abcde" If .OpenFile() Then Return End With End Public Sub DWatch_Windows() ' Se la l'elenco delle finestre aperte sulla Scrivania è cambiato... ' ...allora si verifica se si è aperta proprio la finestra "Abcde": If Desktop.FindWindow("Abcde", Null, Null).Count > 0 Then ' Se è così, allora la finestra di Dialogo, avente Titolo "Abcde", viene ridimensionata: With dw = New DesktopWindow(Desktop.FindWindow("Abcde", Null, Null)[0]) .Resize(Screen.AvailableWidth, Screen.AvailableHeight) End With Endif End