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"...")
(Nessuna differenza)

Versione delle 14:15, 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. <BRSe 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