Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - problema con listbox indicizzato
Forum - Visual Basic 6 - problema con listbox indicizzato

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
visualrenzo (Normal User)
Pro


Messaggi: 94
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 21:43
Mercoledì, 20/05/2009
ho fatto un programma che genera delle colonne e poi li riempie con dei numeri sorteggiati
ogni volta che premo sul commandbutton genera una nuova colonna list1(indicizzata) max 25 e poi la riempie con 6 numeri.
Il mio problema e che non riesco ne a visualizzare il contenuto in un secondo form riepilogativo ne a salvare il contenuto delle liste  list1(1) list1(2) ecc prima di uscire im modo che se voglio le vado a ricaricare in un secondo momento.

spero di essere stato chiaro.
grazie in anticipo:pat:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 23:45
Mercoledì, 20/05/2009
Se le devi salvare su disco, registra il loro contenuto in un file e rileggilo quando ti serve ...

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 1:43
Giovedì, 21/05/2009
se le listbox le crei con la funzione load, devi sempre dargli posizione, dimensioni e visibilità
Codice sorgente - presumibilmente Plain Text

  1. Load list1(1)
  2. list1(1).Top = 0
  3. list1(1).Left = 0
  4. list1(1).Width = 100
  5. list1(1).Height = 100
  6. list1(1).Visible = True



spero d' essere stato utile, se posti anche il codice possiamo dirti di +

PM Quote
Avatar
visualrenzo (Normal User)
Pro


Messaggi: 94
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 22:33
Giovedì, 21/05/2009
grazie come sempre del vostro prezioso aiuto.

questo è il codice che carica le colonne

Public Sub chiamaidx()          '  sub chiamaidx CARICA COLONNE


idx = (idx + 1)             'incrementa idx numero colonne estratte
Load List1(idx)             'carica una nuova colonna
Load frmstampacolonne2.List1(idx)
Load frmVisualizzacolonne2.List1(idx)
Load Label6(idx)            'numero colonna estratto
Load frmstampacolonne2.Label6(idx)
Load frmVisualizzacolonne2.Label6(idx)
Label6(idx).Caption = idx   ' fissa label6 = numero colonna estratta
frmstampacolonne2.Label6(idx).Caption = idx ' indica il n della colonna
frmVisualizzacolonne2.Label6(idx).Caption = idx
    If idx > 25 Then End ' imposto  25 colonne
    
                        
    If y <= FrmCartellone91.Width - 1500 Then  'larghezza
    y = y + 550
    yy = yy + 400
     List1(idx).Top = 200 + x
      List1(idx).Left = 200 + y
     List1(idx).Visible = True
    frmstampacolonne2.List1(idx).Top = 200 + x  'anche nel menu stampacolonne2
    frmstampacolonne2.List1(idx).Left = 200 + yy
    frmstampacolonne2.List1(idx).Visible = True
    frmVisualizzacolonne2.List1(idx).Top = 200 + x  'anche nel menu stampacolonne2
    frmVisualizzacolonne2.List1(idx).Left = 200 + yy
    frmVisualizzacolonne2.List1(idx).Visible = True
    
    Label6(idx).Top = 2500 + x 'altezza
    Label6(idx).Left = 200 + y 'larghezza
    Label6(idx).Visible = True ' rende visibile la nuova colonna
    frmstampacolonne2.Label6(idx).Top = 2500 + x 'altezza anche nel form di stampa
    frmstampacolonne2.Label6(idx).Left = 200 + yy 'larghezza
    frmstampacolonne2.Label6(idx).Visible = True ' rende visibile la nuova colonna
    frmVisualizzacolonne2.Label6(idx).Top = 2500 + x 'altezza anche nel form di stampa
    frmVisualizzacolonne2.Label6(idx).Left = 200 + yy 'larghezza
    frmVisualizzacolonne2.Label6(idx).Visible = True ' rende visibile la nuova colonna
        
        Else  ' dopo 25 colonne va a capo

    x = x + 380
    y = 380 + 380
    'yy = 380 + 380
         List1(idx).Top = 2800 + y 'altezza
         List1(idx).Left = 200 + x
         List1(idx).Visible = True
'         frmstampacolonne2.List1(idx).Top = 2800 + y 'altezza
'         frmstampacolonne2.List1(idx).Left = 200 + x
'         frmstampacolonne2.List1(idx).Visible = True
        
    frmstampacolonne2.List1(idx).Visible = True
    End If

questo è il codice che sorteggia e aggiunge i 6 numeri nella colonna

Dim Estratto As Integer
'*******************************     START  ******************


Label111.Visible = False
   Label1111.Visible = True
  
    Randomize                                                   'Reinizializza la funzione Random, così da ottenere ogni volta serie diverse
    Estratto = Int((u * Rnd) + 1)                               'Estrae una posizione casuale, tra le u posizioni residue
    
    TxtEstratto = N(Estratto)                                   'Il NUMERO estratto è quello contenuto nella posizione casuale precedente

    Label1(N(Estratto) - 1).BackColor = &HC000&                 'Cambia il colore di fondo della casella che contiene il numero estratto
    
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  lorenzo xxxxxxxxxxxxxxxxxxxxxxxxx
    

    For ii = 1 To num
        If Text1(ii).Text = TxtEstratto Then
        
       List1(idx).AddItem TxtEstratto
       frmstampacolonne2.List1(idx).AddItem TxtEstratto ' carica la lista anche nel form di stampa
        frmVisualizzacolonne2.List1(idx).AddItem TxtEstratto ' carica la lista anche nel form di stampa
       Text1(ii).BackColor = &HFFFF&    '&HC000&
   totlista = List1(idx).ListCount

  
   If totlista > 5 Then Timer1.Enabled = False  ' conta i numeri estratti nella lista colonna
  

   numeriscelti = totlista


End Sub

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 0:45
Venerdì, 22/05/2009
probabilmente nn vedi le listbox (e penso anche le label), xk quando crei gli oggeti, gli dai visibilità e posizione, ma non la dimensione

Codice sorgente - presumibilmente Visual Basic 6

  1. frmstampacolonne2.List1(idx).Top = 200 + x  'anche nel menu stampacolonne2
  2.     frmstampacolonne2.List1(idx).Left = 200 + yy
  3.     frmstampacolonne2.List1(idx).Visible = True



dovresti assegnargli anche le proprietà height e width

Codice sorgente - presumibilmente Plain Text

  1. frmstampacolonne2.List1(idx).Top = 200 + x  'anche nel menu stampacolonne2
  2.     frmstampacolonne2.List1(idx).Left = 200 + yy
  3.     frmstampacolonne2.List1(idx).Height = 200
  4.     frmstampacolonne2.List1(idx).Width = 200
  5.     frmstampacolonne2.List1(idx).Visible = True


PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 1:54
Venerdì, 22/05/2009
Non credo sia quello il problema.

Quando si carica un controllo a run-time con
Codice sorgente - presumibilmente Plain Text

  1. Load controllo(Indice)


vengono ereditate tutte le proprietà del controllo(0)


PM Quote
Avatar
visualrenzo (Normal User)
Pro


Messaggi: 94
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 20:53
Venerdì, 22/05/2009
IO nel form principale riesco a vederle tutte e 25 ,se le carico tutte e 25.

Il mio problema è che se richiamo per esempio la list1(2) non so come fare  a fargli leggere il contenuto per visualizzarle in un altro form o se voglio salvarle.

L' unica cosa che sono riuscito a fare per esempio è fare in modo che mentre le carica nel primo form automaticamente le carica anche sul secondo. ma non è  quello che mi interessava fare.

Io vorrei riunire tutte le colonne col rispettivo contenuto per esempio chiamandole colonne sorteggiate  e poi richiamarle in visualizzazione o per la stampa da un file salvato.

Si potrà fare?

C' è un' istruzione che mi  riepiloga il contenuto di una listbox?
esempio contenuto list1(1) =11 22 33  44 55 66    potere richiamare questi numeri in un altro list o text ?

grazie a tutti:k:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:09
Venerdì, 22/05/2009
Sinceramente, non ho capito quasi nulla di quello che devi fare, ne' di quale sia il problema ...

Puo' essere che quello che ti serve e' un altro controllo (magari una ListView)?

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 21:55
Venerdì, 22/05/2009
se ho capito bene vuoi conoscere gli elementi di una listbox...
in tal caso:
list1.list(index) contiene il valore nella posizione index

per scorrere tutti gli elementi:
Codice sorgente - presumibilmente Visual Basic 6

  1. for i=0 to list1.count
  2. elem=list1.list(i)
  3. next i


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo