Differenze tra le versioni di "Verificare se un Form è attivo"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per verificare se un Form è attivo, si potranno utilizzare alcune modalità. ==Uso delle risorse della Classe ''Application''== Si utilizzerà la Proprietà ".ActiveWindow"...")
 
 
Riga 3: Riga 3:
 
==Uso delle risorse della Classe ''Application''==
 
==Uso delle risorse della Classe ''Application''==
 
Si utilizzerà la Proprietà ".ActiveWindow" della Classe ''Application''.
 
Si utilizzerà la Proprietà ".ActiveWindow" della Classe ''Application''.
<BRSe la verifica deve avvenire all'apertura del ''Form'', sarà necessario imporre ''Wait'' anche di qualche decimo di secondo.
+
<BR>Se la verifica deve avvenire all'apertura del ''Form'', sarà necessario imporre ''Wait'' anche di qualche decimo di secondo.
  
 
Mostriamo un esempio:
 
Mostriamo un esempio:

Versione attuale delle 15:18, 30 set 2023

Per verificare se un Form è attivo, si potranno utilizzare alcune modalità.

Uso delle risorse della Classe Application

Si utilizzerà la Proprietà ".ActiveWindow" della Classe Application.
Se la verifica deve avvenire all'apertura del Form, sarà necessario imporre Wait anche di qualche decimo di secondo.

Mostriamo un esempio:

Public Sub Form_Open()

 Me.Show

 Wait 0.5

 Print Application.ActiveWindow.Name

End

oppure:

Public Sub Form_Open()

 Me.Show

 Do
   Wait 0.5
 Loop Until Application.ActiveWindow.Name = "FMain"

 Print Application.ActiveWindow.Name 

End


Uso della Classe DesktopWindow

Per la verifica di un Form o comunque di una qualunque altra finestra si può anche pensare ad una soluzione che ne accerti l'esistenza partendo dal suo nome visibile mediante la Classe DesktopWindow.
E' necessario attivare i Componenti gb.desktop e gb.desktop.x11 .
Poniamo il caso che il Form da verificare si chiami "Finestra":

Public Sub Button1_Click()

 Dim dw As DesktopWindow
 
' Di ogni finestra aperta sul desktop...
 For Each dw In Desktop.Windows
' ...cerca il nome. Se il nome "visibile" è uguale al nome del "Form" che cerchiamo, allora lo rileva:
   If dw.VisibleName = "Finestra" then Print "Il Form è attivo !"
 Next

End