Uso della classe DesktopWatcher: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
(10 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)''.
  variabileTipoDesktopWatcher_NomeEvento([parametro-eventuale])


''DesktopWatcher'' solleva i seguenti eventi:
''DesktopWatcher'' solleva i seguenti Eventi:
* ''ActiveWindow'': la finestra attiva è cambiata. Per sapere ora quale è, usare ''Desktop.ActiveWindow'' .
* "_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.
* "_Change()": il desktop virtuale corrente è cambiato.
* ''Count'': il numero dei desktop virtuali è cambiato.
* "_Count()": il numero dei desktop virtuali è cambiato.
* ''Geometry'': la geometria del desktop è mutata.
* "_Geometry()": la geometria del desktop è mutata.
* ''WindowGeometry'': l'evento è sollevato, se una specifica finestra è stata spostata o ridimensionata.
* "_WindowGeometry()": l'evento è sollevato, se una specifica finestra è stata spostata o ridimensionata.
* ''WindowIcon'': l'evento è sollevato, se l'icona di una specifica finestra è cambiata.
* "_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.
* "_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.
* "_WindowState()": l'evento è sollevato, se lo stato di una specifica finestra è cambiato.
* ''Windows'': la lista delle finestre dei desktop è cambiata (una finestra di primo-livello è stata creata o distrutta)of destroyed). Per scorrere la lista e vedere quali finestre vi sono, usare ''Desktop.Windows'' .
* "_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===
Un breve esempio pratico:
  Private dw As DesktopWatcher
  Private dw As New DesktopWatcher As "dw"
   
   
   
   
  '''Public''' Sub Form_Open()
  Public Sub Form_Open()
   
   
  With dw = New DesktopWatcher(Me) As "dw"
  <FONT color=gray>' ''Restituisce o imposta se l'oggetto DesktopWatcher guarda solo la finestra principale:''</font>
  <FONT color=gray>' ''Restituisce o imposta se l'oggetto DesktopWatcher guarda solo la finestra principale:''</font>
  dw.RootWindow = True
    .RootWindow = True
  End With
   
   
  '''End'''
  End
   
   
   
   
Riga 30: Riga 31:
  ' ''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( )
  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"
    
    
   TextLabel1.Text = "Modifica all'interno del Desktop !"
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()
    
    
  '''End'''
  <FONT Color=gray>' ''Osserva tutte le finestre, presenti e quelle eventuali future, sulla Scrivania:''</font>
  wa = New DesktopWatcher As "DWatch"
 
End
   
   
   
   
  <FONT color=gray>' ''Se si cambia desktop, ossia se si passa ad un altro desktop dello schermo,''
  Public Sub Button1_Click()
' ''allora viene sollevato questo evento:</font>
'''Public''' Sub dw_Change( )
    
    
  TextLabel1.Text = "Cambio Desktop !"
  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'''
  End
   
   
   
   
  <FONT color=gray>' ''Questo evento viene sollevato se l'elenco delle finestre è cambiato,''
Public Sub DWatch_Windows() <FONT Color=gray>' ''Se la l'elenco delle finestre aperte sulla Scrivania è cambiato...''</font>
' ''cioè se una finestra è stata aperta, chiusa, o se l'ordine di sovrapposizione è cambiato:''</font>
'''Public''' Sub dw_Windows( )
    
    
  TextLabel1.Text = "Evento _Windows !"
<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'''
  End

Versione attuale delle 16: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