PDA

Visualizza la versione completa : array


fungo
14-07-2002, 17:09
Salve e buona domenica.

Ho un problemino con gli array.

Allora io voglio creare un array di tasti premuti, ad ogni clik l'array si deve popolare con il codice ascii del tasto premuto.
Una volta creato l'array voglio leggere il contenuto e visualizzarlo su una textbox.


Private Sub txtFrmCerca_KeyPress(KeyAscii As Integer)
A = Array(Chr$(KeyAscii))
...non riesco ad andare avanti
End Sub

xegallo
14-07-2002, 17:58
intanto devi fare un dimensionamento dinamico
dim A as String
dim conta as long

Private Sub txtFrmCerca_KeyPress(KeyAscii As Integer)
redim A(conta) as string
conta = conta + 1
A(conta) = Chr$(KeyAscii)
end sub

vonkranz
14-07-2002, 19:11
Pero' e' meglio se fai un ridimensionamento dinamico preservando i dati contenuti nell'array altrimenti, ogni volta che ridimensioni l'array ti perdi i dati in essa contenuti.

modifica il codice postato da xegallo in questo modo:


dim A() as String
dim conta as long

Private Sub txtFrmCerca_KeyPress(KeyAscii As Integer)
redim preserve A(conta)
A(conta) = Chr$(KeyAscii)
conta = conta + 1 '<- spostandolo qui utilizzi anche l'elemento con indice 0
end sub


per visualizzare il contenuto dell'array nel textbox puoi fare cosi'


dim i as long
text1.text=""
for i=0 to ubound(a)
text1.text=text1.text & A(i) & " "
next i

Ciao.

xegallo
14-07-2002, 23:27
Originariamente inviato da vonkranz
Pero' e' meglio se fai un ridimensionamento dinamico preservando i dati contenuti nell'array altrimenti, ogni volta che ridimensioni l'array ti perdi i dati in essa contenuti.

modifica il codice postato da xegallo in questo modo:


dim A() as String
dim conta as long

Private Sub txtFrmCerca_KeyPress(KeyAscii As Integer)
redim preserve A(conta)
A(conta) = Chr$(KeyAscii)
conta = conta + 1 '<- spostandolo qui utilizzi anche l'elemento con indice 0
end sub


per visualizzare il contenuto dell'array nel textbox puoi fare cosi'


dim i as long
text1.text=""
for i=0 to ubound(a)
text1.text=text1.text & A(i) & " "
next i

Ciao.
hai ragione senza il preserve non lo ricorda quando termina l'evento che l'ho scritto di getto senza provarlo

vonkranz
15-07-2002, 08:48
Originariamente inviato da xegallo

hai ragione senza il preserve non lo ricorda quando termina l'evento che l'ho scritto di getto senza provarlo

;)

fungo
15-07-2002, 11:27
Grazie, risolto il problema.

Private Sub txtFrmCerca_KeyPress(KeyAscii As Integer)
ReDim Preserve A(conta)
A(conta) = Chr$(KeyAscii)
conta = conta + 1
txtFrmCerca.Text = ""
For i = 0 To UBound(A)
txtFrmCerca.Text = txtFrmCerca.Text & A(i)
Next i
End Sub

Adesso l'unico inconveniente e che io alla pressione di un tasto scrivo la lettera premuta nel campo testo e nello stesso tempo riempo l'array che vado a leggere ed visualizzare nel campo testo.
Quello che vorrei fare e rendere invisibile la prima lettera.

Poi dovrei fare una funzione che intercetti la pressione dei tasti indietro e cancella per eliminare eventuale lettera.


Altra domanda come elimino il contenuto di un array?

Loading