Inserire dati con un InputBox senza bloccare il programma

Da Gambas-it.org - Wikipedia.

Come è noto, in Gambas all'aprirsi della finestra di un InputBox si determina il blocco del processo del codice, sino a quando non si cliccherà sull'apposito tasto presente sulla finestra dell'InputBox.

E' possibile ottenere l'apertura della finestra di un Prompt (ossia di InputBox) senza determinare l'arresto del programma, richiamando mediante la proprietà .Url dell'oggetto WebView (dopo aver ovviamente attivato il componente gb.qt4.webkit) un file html contenente il seguente codice:

<HTML>


 <HEAD>

  <SCRIPT>

    var p = prompt('Inserisci il dato:');
// Scrive il dato nella WebView:
    document.write(p);

  </script>

 </head>


</html>

Non è necessario che l'oggetto WebView sia visibile, o sia comunque effettivamente presente sul Form, è sufficiente che sia inizializzato e che sia impostata la sua proprietà .Url con l'indirizzo del file html. Pertanto nel codice Gambas si potrà anche impostare l'oggetto WebView anche solo così:

Private vw As WebView


Public Sub Form_Open()

 Dim s As String

  With vw = New WebView(Me)
    .Url = "/percorso/del/file.html"
  End With

' Nonostante l'apertura della finestra del "prompt" (ossia dell'InputBox) con "JavaScript",
' il codice Gambas proseguirà a svolgersi...:
  Shell "ls" To s

  Print s

End


Public Sub Button2_Click()

' Nella "TextEdit" sarà mostrato il valore inserito nel prompt:
   TextEdit1.Text = vw.Text

End

Appena richiamato il file html, si aprirà la finestra del prompt, che corrisponde alla finestra InputBox in Gambas, e che arresterà il proseguo dell'eventuale codice html sino a quando non si cliccherà sull'apposito tasto presente sulla finestra medesima, ma il processo del codice Gambas non sarà bloccato, continuando così questo regolarmente a svolgersi indipendentemente dall'azione esercitata dall'utente sulla finestra del Prompt (InputBox) del codice html.