Niente di più facile (premettendo ovviamente che hai inserito un oggetto ListBox nel form principale):
PUBLIC SUB Form_Open()
DIM Vettore[10] AS String
DIM I AS Integer
ListBox1.Clear
FOR I = 0 TO 9
Vettore[I] = InputBox("Valore n°" & CStr(I + 1) & ":")
ListBox1.Add(Vettore[I])
NEXT
END
Ricordati che:
1) InputBox restituisce dati in formato String;
2) la numerazione di vettori, oggetti, ecc... in Gambas parte sempre da 0 (zero);
3) il NEXT non necessita della variabile specificata nel FOR perché chiude in automatico il primo ciclo FOR aperto;
4) esiste anche un metodo dinamico per dichiarare Vettore in modo che non hai bisogno di sapere quanti elementi introdurrai durante il tuo esercizio:
PUBLIC SUB Form_Open()
DIM Vettore AS NEW String[]
DIM I AS Integer
DIM C AS String
ListBox1.Clear
i = 0
WHILE TRUE
C = InputBox("Valore n°" & CStr(I + 1) & ":")
IF C THEN
Vettore.Add(C)
ListBox1.Add(Vettore[I])
I += 1
ELSE
BREAK
END IF
WEND
END
In questo esempio dichiaro Vettore dinamico: la parola NEW crea fisicamente la variabile in memoria con il numero di elementi specificati tra le parentesi []. In questo caso, non assegno a priori una dimensione fissa, per cui il vettore può crescere arbitrariamente.
Creo un ciclo infinito e leggo un input dall'utente finché questi non preme Invio senza inserire nulla, caso in cui esco dal ciclo.
non te la riconosce perchè hai dichiarato i nella funzione form_clik() invece che nella funzione button1_click
in tal modo i ha validità solo nella funzione dove è stata dichiarata
se vuoi che una variabile sia utilizzabile in + funzioni devi dichiararla con PRIVATE i as integer (se sara visibile solo all' interno del form o modulo dove è dichiarata) oppure PUBLIC i as integer (se sarà disponibile in qualsiasi form o modulo del progetto)
queste due dichiarazioni vanno poste subito dopo la scritta
' Gambas class file
il codice da usare è questo:
PUBLIC SUB Button1_Click()
DIM numeri AS Integer[10]
DIM i AS Integer
FOR i = 0 TO 9
numeri[i] = inputbox("Che valore vuoi?")
listbox1.add(numeri[i])
NEXT
END