Italian Risolto - Multiform

Fulvio75

Well-Known Member
Licensed User
Ciao, in una app B4J multiform come faccio a disabilitare il form che chiama l'altro form fino a quando questo chiamato è aperto?
Grazie
 

Fulvio75

Well-Known Member
Licensed User
Risolto... ho utilizzato:

Frm form chiamante
OwnerFrm form chiamato da Frm

'Per disabilitare il form che chiama l'altro su un evento
Frm.RootPane.Enabled =false
'per riabilitare il form chiamante all'uscita del form chiamato passando il form chiamante al form chiamato
OwnerFrm.RootPane.Enabled = True
Form chiamato.Close
 

Fulvio75

Well-Known Member
Licensed User
Altra domanda questo sopra lo posso fare con dei bottoni esempio Salva oppure Chiudi, c'è un modo per intercettare la pressione del bottone Chiudi X del form?
Ho provato con Focused ma questi eventi non funzionano sul form, non è B4XPage è un progetto normale.
 

ivanomonti

Expert
Licensed User
Longtime User
scrivi [risolto] nel titolo, aiuti la comunità b4j Italia
 

Fulvio75

Well-Known Member
Licensed User
Gli eventi relativi ai Forms non funzionano nei form figli creati dal form principale?

Evento form figlio
B4X:
Private Sub MainForm_FocusChanged (HasFocus As Boolean)
    
End Sub

questo è il form figlio che viene caricato dal form principale e l'evento non ha il nome del form figlio ma di quello principale
 

Sagenut

Expert
Licensed User
Longtime User
Gli eventi relativi ai Forms non funzionano nei form figli creati dal form principale?

Evento form figlio
B4X:
Private Sub MainForm_FocusChanged (HasFocus As Boolean)
   
End Sub

questo è il form figlio che viene caricato dal form principale e l'evento non ha il nome del form figlio ma di quello principale
Quella sub era già presente nel form figlio?
Per funzionare credo che dovrà avere il nome della Form.
 

Sagenut

Expert
Licensed User
Longtime User
Non posso fare prove in quanto sono in ferie e quindi senza PC. 🥳
 

LucaMs

Expert
Licensed User
Longtime User
Altra domanda questo sopra lo posso fare con dei bottoni esempio Salva oppure Chiudi, c'è un modo per intercettare la pressione del bottone Chiudi X del form?
Ho provato con Focused ma questi eventi non funzionano sul form, non è B4XPage è un progetto normale.
Crea un variabile a livello di modulo, boolean, che imposterai su True negli eventi di Salva e Chiudi.
Poi:
B4X:
Private Sub NomeTuoForm_CloseRequest (EventData As Event)
    If Not(TuaVariabile) Then EventData.Consume
End Sub
 

Fulvio75

Well-Known Member
Licensed User
Crea un variabile a livello di modulo, boolean, che imposterai su True negli eventi di Salva e Chiudi.
Poi:
B4X:
Private Sub NomeTuoForm_CloseRequest (EventData As Event)
    If Not(TuaVariabile) Then EventData.Consume
End Sub
Il problema è che non entra in NomeTuoForm_CloseRequest come se non esistesse, poi se ho il form figlio del main form e vado nel designer di form figlio ho la treeview del designer, clicco con il bottone destro su main e vedo gli eventi del form figlio, scelgo un evento qualsiasi tipo mouse click e lo aggiunge al codice, però non succede nulla l'evento non avviene
 

Fulvio75

Well-Known Member
Licensed User
form.Initialize("form",600,700)

Private Sub form_CloseRequest (EventData As Event)
If Not(TuaVariabile) Then EventData.Consume
End Sub

non avevo messo form initialize
 
Top