Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    34

    pubblicare e richiamare un array in vb6

    PUBBLICARE E RICHIAMARE UN ARRAY!!!!!

    Salve a tuttiii!

    ho questo problemino che non riesco a risolvere, per quanto riguarda la memorizzarzione di dati in un array per poi fare la sottrazione in una label selezionando i valori da una list:

    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

  2. #2
    codice:
    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
    Non riesco a capire cosa vuoi fare con questo codice, usi "i" senza ne dichiararla e senza fare un ciclo...
    Per quello che ho capito posso solo dirti che se devi usare le variabili in piu routine devi dichiararle in alto, prima di tutto, e non dentro le routine stesse. In questo modo le variabili non si limitano a memorizzare i dati solo per la durata della routine, ma rimangono in memoria per tutta la durata del programma, quindi potrai utilizzarle in piu routine.

    Prova a spiegare meglio cosa devi fare e che problemi incontri.

    PS: usa il tag CODE per postare i codici (leggi qua).


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    34
    hai ragione......non mi sono proprio ricordato, infatti le cose già prendono forma e mi funziona più del dovutoXD nel senso che mi aggiunge i numeri ma per quante posizioni accupa nella lista...ad esempio: posizione 0 = 1 solo numero nella lista....posizione 1= 2 numeri uguali nella lista...ecc....
    ora dov'è che sbagliO??


    Dim contatore(100) As Integer
    Dim i As Integer


    Private Sub Command1_Click()

    For i = 1 To List1.ListCount + 1

    List1.AddItem (Text1.Text)

    contatore(i) = Val(Text1.Text)

    MsgBox " " & contatore(i) & " "
    Next

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



    End Sub

  4. #4
    scusami ma non mi è chiaro ne quello che tu vuoi fare e nemmeno il codice...è impossibile (per me) aiutarti cosi.
    codice:
    Dim contatore(100) As Integer
    Dim i As Integer'questa variabile potevi dichiararla dentro la routine
    
    
    Private Sub Command1_Click()
    
    For i = 1 To List1.ListCount + 1
    
    List1.AddItem (Text1.Text)'non ha senso aggiungere item qua
    
    contatore(i) = Val(Text1.Text)'dato che text1 non cambia non vedo per quale motivo dovresti immaganizzare la stessa variabile piu volte.
    
    MsgBox " " & contatore(i) & " "
    Next
    
    Label1 = Val(Label1) + Val(Text1.Text)
    Text1.Text = ""
    
    
    
    End Sub
    non capendo cosa devi fare e quale deve essere il risultato finale che non riesci ad ottenere non posso darti indicazioni.
    se devi visualizzare il totale degli item posti in una listbox stai sbagliando e posso indirizzarti verso la strada giusta. Spiega BENE cosa vuoi ottenere!

    PS: usa il tag CODE per postare i codici altrimenti non sono chiari e si perde l'indentatura.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    34
    allora io aggiungo dei prezzi ad una list...e questi prezzi si sommano in una label...(fin qui ci sono riuscito)


    il mio problema è che quando rimuovo un prezzo....oltre a rimuoverlo dalla list devo rimuoverlo anche dal totale e quindi ho creato un array che mi va a memorizzare tutti i valori inseriti (quindi assegno a contatore(i) il valore della text) e poi se volessi rimuovere dalla list seleziono il prezzp sottraendo il suo valore (attraverso l'array) anche dal totale....

    spero di essere stato chiaro!!

    p.s. la messa al video dei valori è giusot per controllare il valore inserito o eliminato corrisponde a quello contenente nell'array.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da webman89
    ... quando rimuovo un prezzo....oltre a rimuoverlo dalla list devo rimuoverlo anche dal totale e quindi ho creato un array
    E perche' utilizzare un array. Quando rimuovi il prezzo dalla list, fai una sottrazione dal totale e basta.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    secondo me non hai bisogno di un array, ti basta calcolare il totale usando gli item, ad esempio
    codice:
    private sub CalcolaTotali()
        dim i as integer,d as double
        for i = 0 to list1.listcount-1
            list1.listindex= i 
            d = d+list1.text
        next i 
        label1.caption = "€ " & formatnumber(d,2) 
    end sub 
    
    Private Sub Command1_Click()
    CalcolaTotali
    end sub
    l'ho scritto cosi veloce...prova a capire questo codice.
    metti CalcolaTotali alla fine di ogni operazione di popolazione della listbox, o quando rimuovi un item.
    spero di essere stato chiaro

  8. #8
    Originariamente inviato da oregon
    E perche' utilizzare un array. Quando rimuovi il prezzo dalla list, fai una sottrazione dal totale e basta.
    Esatto...

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    34
    ma forse non è chiaro: io la somma la riesco a fare tranquillamente......è quando devo fare la sottrazione che è diverso....

    la sottrazione del valore al totale la faccio selezionando dalla lisstbox il valore da rimuovere perciò faccio:

    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


    ora avrei quasi risolto se non è per questa "anomalia" che si presenta quando inserisco un dato che si aggiunge varie volte:


    Dim contatore(100) As Integer
    Dim i As Integer


    Private Sub Command1_Click()

    For i = 1 To List1.ListCount + 1

    List1.AddItem (Text1.Text)

    contatore(i) = Val(Text1.Text)

    MsgBox " " & contatore(i) & " "
    Next

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



    End Sub

    ..................vi prego non cambiamo metodo per aggiungere o sottrarre i valori, vi chiedo solo di controllare l'errore del codice...

    grazie!!

  10. #10
    Quale anomalia incontri?

    Comunque se ti abbiamo consigliato altri sistemi è perchè sono piu semplici ed efficaci del tuo...ma capisco il voler rimanere sulla propria strada...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.