Verificare se un Form è attivo
Da Gambas-it.org - Wikipedia.
Versione del 30 set 2023 alle 14:18 di Vuott (Discussione | contributi)
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