Pagina 1 di 1

[VB6] Richiamare un'Array

MessaggioInviato: gio mar 12, 2009 7:05 pm
da Webman
RICHIAMARE UN ARRAY!!!!!

silver ho quest'ultimo problemino che no nriesco a risolvere, per quanto riguarda l'array per fare la sottrazione:

nel pulsante "aggiungi nella lista" c'è il seguente codice, ovvero quello che mi memorizza i dati nelll'array:

Private Sub Command1_Click()

Dim contatore(100) As Integer

List1.AddItem (Text1.Text)

contatore(i) = Text1.Text

MsgBox " " & contatore(i) & " "


Label1 = Val(Label1) + (Text1.Text)
Text1.Text = ""

End Sub
---------------------------------------------------------------------------------------------------------------------
mentre qui c'è il codice dove vado a rimuovere il valore nella list (che va bene) e contemporarenamente DOVREI togliere il prezzo anche dal totale:

Private Sub Command2_Click()

Dim contatore(100) As Integer <----------qui dovrei richiamare l'array di sopra che mi ha salvato i valori


i = List1.ListCount - 1

While i >= 0

If List1.Selected(i) = True Then

List1.RemoveItem (List1.ListIndex)
MsgBox " " & contatore(i) & "" <----- qui giustamente mi stampa a video 0 perché non c'è niente.
Label1 = Label1 - contatore(i)

End If
i = i - 1
Wend

End Sub

Re: [VB6] Richiamare un'Array

MessaggioInviato: mar mar 24, 2009 11:36 am
da Silver Black
Non sai le basi della programmazione. [...] Se RIDICHIARI (non si dice "richiamare", non è un metodo di un oggetto!!!) un array questo sarà una porzione di momoria (detta "variabile") completamente diversa dall'array dichiarato in precedenza!

Devi perciò dichiarare un array globale nella sezione "declarations" del modulo (o della form), non direttamente nella routine "_Click". Fatto questo non lo ridichiarerai più ma lo riutilizzerai semplicemente facendo riferimento ad esso.

Re: [VB6] Richiamare un'Array

MessaggioInviato: mar mar 24, 2009 7:18 pm
da dararag
Insomma, detto in codice:
Codice: Seleziona tutto
Option Explicit
Public contatore(100) As Integer

Private Sub Command1_Click()
List1.AddItem (Text1.Text)
contatore(i) = Text1.Text
MsgBox " " & contatore(i) & " "
Label1 = Val(Label1) + (Text1.Text)
Text1.Text = ""
End Sub

Private Sub Command2_Click()
i = List1.ListCount - 1
While i >= 0
If List1.Selected(i) = True Then
List1.RemoveItem (List1.ListIndex)
MsgBox " " & contatore(i) & ""
Label1 = Label1 - contatore(i)
End If
i = i - 1
Wend
End Sub

oppure crei un nuovo elemento detto modulo, le cui variabili non azzerano il proprio valore e sono sempre accessibili, inserendo lì l'array contatore

EDIT: posso farti una richiesta? puoi scrivere il tuo codice tra i tag "
Codice: Seleziona tutto
" e "
"? scommetto che te ne saranno tutti grati, come lo scrivi tu non si capisce niente