PDA

Visualizza la versione completa : cancellare il contenuto di un array


fungo
15-07-2002, 11:31
Ciao a tutti, come elimino tutto il contenuto di un array?

Grazie

ladyBlu
15-07-2002, 11:32
Se parli di VB:

Erase nomeArray()

:ciauz:

Reale_Augello
15-07-2002, 11:33
... ma in che linguaggio ? :confused:

In C puoi settare il tutto a 0 con un semplice ciclo:



for (i=0; i<n; i++) vettore[i]=0;


Ciao ! :)

Maldito
15-07-2002, 11:33
in che linguaggio:dottò:

fungo
15-07-2002, 11:50
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.

2° domanda.

su un form ho 7 optionbutton alla pressione su un optionbutton voglio che il carattere diventi bold, però non riesco ad ottenere l'inverso.
Mi spiego meglio il codice sotto,


Private Sub Opt1_Click(Index As Integer)
If Opt1(Index) = True Then
Opt1(Index).FontBold = True
End If
End Sub

quando selezione un opt il carattere diventa bold quando passo ad un'altro opt dovrebbe diventare normale l'opt precedente e diventare bold quello selezionato.

Mi date una mano?

ladyBlu
15-07-2002, 12:03
2° domanda.

su un form ho 7 optionbutton alla pressione su un optionbutton voglio che il carattere diventi bold, però non riesco ad ottenere l'inverso.
Mi spiego meglio il codice sotto,


Private Sub Opt1_Click(Index As Integer)
If Opt1(Index) = True Then
Opt1(Index).FontBold = True
End If
End Sub

quando selezione un opt il carattere diventa bold quando passo ad un'altro opt dovrebbe diventare normale l'opt precedente e diventare bold quello selezionato.

Scrivi così:


Private Sub Opt1_Click(Index As Integer)
If Opt1(Index) = True Then
Opt1(Index).FontBold = Not Opt1(Index).FontBold
End If
End Sub

l'evento click viene richiamato solo se l'option button che clikki ha value=False, quindi per farlo tornare normale devi prima cliccare su un altro option che diventerà a sua volta bold. e così via per gli altri.
non so se era questo quello che volevi, cmq vedi se ti va bene.
:ciauz:

fungo
15-07-2002, 12:18
Grazie ladyBlu, il codice funge ma per farlo diventare con il carattere normale devo cliccare.
Cioè se opt a valore true il carattere è bold, se false normale.
Allora il codice che mi hai postato funziona ma quando clicco su un'altro opt quello precedente rimane bold per farlo diventare normale devo cliccargli sopra.

ladyBlu
15-07-2002, 12:22
si, era questo che cercavo di spiegarti infatti.
e non è questo che ti serve, giusto?

fungo
15-07-2002, 12:28
Potrei eseguire un ciclo for che verifichi il valore vero di opt in modo da azzerare gli altri.
Mi spigo meglio, se io intercetto optionbutton selezionato, ho il modo di creare un ciclo che deselezioni tutti gli altri.
Il ciclo non deve terminare mai esegue un controlo continuo.

Il problema e che non so come fare.

opt1(1) fino a opt1(7)

Cosa ne pensi?

ladyBlu
15-07-2002, 12:38
se vuoi fare un controllo continuo devi utilizzare un timer, che farà partire la procedura di controllo all'intervallo stabilito da te.
e la procedura sarà questa:


dim mioIndice as Integer

Private Sub Opt1_Click(Index As Integer)
mioIndice = Index
Opt1(Index).FontBold = True
ControllaOption (Index)
End Sub

Sub ControllaOption(indOpt)
For i = 0 To Opt1.ubound
If i <> indOpt Then
Opt1(i).Value = False
Opt1(i).FontBold = False
End If
Next i
End Sub

Private Sub Timer1_Timer()
ControllaOption (mioIndice)
End Sub

mioIndice lo dichiari nella sezione generale-dichiarazioni del form così lo vedono tutte le procedure.

:ciauz:

Loading