Differenze tra le versioni di "Creare un ComboBox in una tabella e passare i suoi valori selezionati al codice Gambas"

Da Gambas-it.org - Wikipedia.
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Il caso in questione è quello in cui si intende inserire un ''ComboBox'' all'interno di una cella di una tabella, entrambi ovviamente generati con il codice HTML. Inoltre, si intende passare il valore di un elemento selezionato del ''ComboBox'' al codice Gambas.
 
Il caso in questione è quello in cui si intende inserire un ''ComboBox'' all'interno di una cella di una tabella, entrambi ovviamente generati con il codice HTML. Inoltre, si intende passare il valore di un elemento selezionato del ''ComboBox'' al codice Gambas.
  
Si farà uso dell'oggetto ''WebView'', di cui si potrà disporre attivando anche il componente ''gb.qt5.webkit''.
+
Si farà uso dell'oggetto ''WebView'', di cui si potrà disporre attivando anche il Componente ''gb.qt5.webview''.
  
Riguardo al secondo obiettivo posto, poiché né protocollo HTML, né quello ''JavaScript'' consentono di salvare un contenuto in un file si procederà con uno stratagemma a scrivere il valore selezionato del ''ComboBox'' nell'oggetto ''WebView'', cosicché potrà essere recuperato leggendo il contenuto della sua Proprietà ".Text". Questa operazione, però, <SPAN Style="text-decoration:underline">comporterà la scomparsa sia della tabella che del ''ComboBox'' precedentemente creati</span>. Si dovrà dunque fare sì nel codice Gambas che sia la tabella che il ''ComboBox'' vengano nuovamente generati.
+
Riguardo al secondo obiettivo posto, poiché né protocollo HTML, né quello ''JavaScript'' consentono di salvare un contenuto in un file si procederà con uno stratagemma a scrivere il valore selezionato del ''ComboBox'' nell'oggetto ''WebView''. Questa operazione, però, <SPAN Style="text-decoration:underline">comporterà la scomparsa sia della tabella che del ''ComboBox'' precedentemente creati</span>. Si dovrà dunque fare sì nel codice Gambas che sia la tabella che il ''ComboBox'' vengano nuovamente generati.
  
In un file html a parte verrà posto il seguente codice "HTML/Javascript": <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
+
In un file html a parte verrà posto il seguente codice "HTML/Javascript": <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 
  &lt;html>
 
  &lt;html>
 
   
 
   
Riga 44: Riga 44:
 
====Il codice Gambas usando un Componente basato sulla libreria grafica "QT"====
 
====Il codice Gambas usando un Componente basato sulla libreria grafica "QT"====
 
Se è stato attivato un Componente basato sulla libreria grafica "QT", allora il codice Gambas avrà il consueto riferimento all'Oggetto ''WebView'' ed in particolare alla sua proprietà ".HTML", alla quale dovrà essere assegnato il codice, sopra descritto, contenuto nel file html e il cui risultato sarà mostrato nell'Oggetto ''WebView'':
 
Se è stato attivato un Componente basato sulla libreria grafica "QT", allora il codice Gambas avrà il consueto riferimento all'Oggetto ''WebView'' ed in particolare alla sua proprietà ".HTML", alla quale dovrà essere assegnato il codice, sopra descritto, contenuto nel file html e il cui risultato sarà mostrato nell'Oggetto ''WebView'':
  '''Public''' Sub Form_Open()
+
  Public Sub Button1_Click()
 
  Me.Show
 
 
   
 
   
 +
<FONT color=gray>' ''Si imposta la tabella e il "ComboBox" incorporato:''</font>
 
   codiceHtml()
 
   codiceHtml()
 
   
 
   
  '''End'''
+
  End
 
'''Public''' Procedure codiceHtml()
 
 
   
 
   
<FONT color=gray>' ''Carica il codice contenuto dal file html:''</font>
 
  WebView1<FONT color=#B22222>.HTML</font> = File.Load("<FONT color=gray>''/percorso/del/file.html"''</font>)
 
 
   
 
   
  '''End'''
+
  Private Procedure codiceHtml()
 
   
 
   
  '''Public''' Sub Button1_Click()
+
  <FONT color=gray>' ''Viene raccolto il contenuto dell'elemento selezionato del "ComboBox":''</font>
 +
  Print "Valore selezionato: "; Scan(WebView1.GetHtml(), "*body>*<*")[1]
 
   
 
   
  <FONT color=gray>' ''Viene raccolto il contenuto della proprietà ".Text" dell'oggetto "WebView":''</font>
+
  <FONT color=gray>' ''Carica il codice contenuto dal file html:''</font>
  Print "Valore selezionato: "; WebView1.Text
+
  WebView1<FONT color=red>.SetHtml(</font>(File.Load("<FONT color=darkgreen>''/percorso/del/file.html"''</font>))
 
   
 
   
  <FONT color=gray>' ''Si ripristina la tabella ed il "ComboBox" incorporato:''</font>
+
  End
  codiceHtml()
 
 
'''End'''
 
 
 
====Il codice Gambas usando un Componente basato sulla libreria grafica "GTK"====
 
Se è stato attivato un Componente basato sulla libreria grafica "GTK", allora nel codice Gambas si utilizzerà il Metodo ".SetHtml()" della Classe ''WebView'', al quale andrà passato, come argomento, il codice contenuto nel file html:
 
WebView1.SetHtml(File.Load("<FONT color=gray>''/percorso/del/file.html''</font>"))
 
  
  

Versione attuale delle 15:45, 22 lug 2024

Il caso in questione è quello in cui si intende inserire un ComboBox all'interno di una cella di una tabella, entrambi ovviamente generati con il codice HTML. Inoltre, si intende passare il valore di un elemento selezionato del ComboBox al codice Gambas.

Si farà uso dell'oggetto WebView, di cui si potrà disporre attivando anche il Componente gb.qt5.webview.

Riguardo al secondo obiettivo posto, poiché né protocollo HTML, né quello JavaScript consentono di salvare un contenuto in un file si procederà con uno stratagemma a scrivere il valore selezionato del ComboBox nell'oggetto WebView. Questa operazione, però, comporterà la scomparsa sia della tabella che del ComboBox precedentemente creati. Si dovrà dunque fare sì nel codice Gambas che sia la tabella che il ComboBox vengano nuovamente generati.

In un file html a parte verrà posto il seguente codice "HTML/Javascript": [nota 1]

<html>

<head>

 <script language="javascript" type="text/javascript">

  function combo(lista) {
    var idx = lista.selectedIndex;
    var contenuto = lista.options[idx].innerHTML;

    document.write(contenuto);

  }
 </script>

</head>

<body>

 <TABLE border=1>
 <TR><TD>
  <select name="lista" onChange="combo(this)">
          <option>Selezionare</option>
     <option>alfa</option>
     <option>beta</option>
     <option>gamma</option>
     <option>delta</option>
   </select>
<TD>cella</td></tr>
<TR><TD>cella</td><TD>cella</td></tr>
</table>

</body>

</html>

Il codice Gambas usando un Componente basato sulla libreria grafica "QT"

Se è stato attivato un Componente basato sulla libreria grafica "QT", allora il codice Gambas avrà il consueto riferimento all'Oggetto WebView ed in particolare alla sua proprietà ".HTML", alla quale dovrà essere assegnato il codice, sopra descritto, contenuto nel file html e il cui risultato sarà mostrato nell'Oggetto WebView:

Public Sub Button1_Click()

' Si imposta la tabella e il "ComboBox" incorporato:
  codiceHtml()

End


Private Procedure codiceHtml()

' Viene raccolto il contenuto dell'elemento selezionato del "ComboBox":
 Print "Valore selezionato: "; Scan(WebView1.GetHtml(), "*body>*<*")[1]

' Carica il codice contenuto dal file html:
 WebView1.SetHtml((File.Load("/percorso/del/file.html"))

End


Note

[1] Il codice HTML, volendo, potrà anche essere questo:

<html>

<head>

 <script language="javascript" type="text/javascript">

  function combo() {
   
    var selectedCombobox = (comboForm.prova.value);

    document.write(selectedCombobox);

  }

</script>

</head>

<body>

 <TABLE border=1>
 <TR><TD>
   <select name="lista" <select id="prova" onChange="combo()">
     <option>Selezionare</option>
     <option>alfa</option>
     <option>beta</option>
     <option>gamma</option>
     <option>delta</option>
   </select>
<TD>cella</td></tr>
<TR><TD>cella</td><TD>cella</td></tr>
</table>

</body>

</html>