Nell'immediato, ossia nel frattempo che non si risolve il problema diversamente, potresti nascondere il Form (se non ho capito male è il Form secondario "Archivio") che copre il Message.Box, e poi farlo riapparire nuovamente:
Archivio.Hide
Message.Info("Alibaba e i 40 ladroni")
Archivio.Show
Potrebbe succedere perchè la procedura che apre la Messagebox risiede in FMain e non in Archivio
No, la procedura che apre il messagebox è su Archivio.
Lo stesso programma girava correttamente su Ubuntu 10.10.
potresti nascondere il Form che copre il Message.Box
Ho provato Archivio.Hide, ma non c'è il massagebox, devo usare sempre Ctrl + Alt + Esc, e comunque non è bello far sparire e poi far riapparire una finestra così, non trovi?
Questo è il codice che stà su Archivio e che genera il messagebox:
PUBLIC SUB Timer1_Timer()
DIM sql AS String
Timer1.Enabled = FALSE
sql = "SELECT id FROM tmag WHERE scorta <= qmin"
MyRes = modConn.$Conn.Exec(sql)
IF MyRes.Available THEN
SELECT Message.info("Attenzione il prodotto " & MyRes!id & " stà finendo")
CASE 1
Timer1.Delay = 10000
Timer1.Enabled = TRUE
END SELECT
ENDIF
END
A titolo informativo, ho provato con Gambas3, funziona in parte, cioè con il messagebox, vengono visualizzati anche i pannelli della scrivania, che essendo FMain FullScreen, non dovrebbero vedersi.
In alternativa potresti generare una finestra del tipo MessageBox mediante JavaScript. In particolare, nella cartella "Dati" del progetto crei un file HTML, che chiamiamo per esempio: file_message.html, avente il seguente codice:
<HTML>
<HEAD>
<SCRIPT type="text/javascript">
alert("Alibaba ed i 40 ladroni");
</script>
</head>
</html>
mentre nel codice Gambas poni - tra gli altri comandi - anche il richiamo a quel codice html mediante l'oggetto WebView. Bisognerà, dunque, attivare il componente gb.qt4.webkit.
Facciamo un esempio semplice e pratico:
Private wv As WebView
Public Sub Button1_Click()
With wv = New WebView(Me)
' Qui richiamiamo il file HTML:
.Url = "file_message.html"
End With
End
Tieni conto, comunque, che l'apertura del MessageBox mediante questa soluzione non blocca il normale processo del codice Gambas; impedisce però l'azione del mouse sugli oggetti posti sul Form sino a quando la finestra del MessageBox non sarà stata chiusa.