Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: vb6 label e oggetti

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    86

    vb6 label e oggetti

    ragazzi com faccio a usare un numero in un nome di una label? mi spiego meglio..
    allora ho
    lbl_val_giu_1b
    lbl_val_giu_2b
    lbl_val_giu_3b

    genero un umero cauale compreso tra 1 e 3 e vorrei usare quel numero nel nome della label

    Randomize
    n=Int(Rnd * 2) + 1
    lbl_val_giu_(n)b.caption=""

    però non funziona.. come posso fare?

  2. #2
    crea una matrice di label. Con il 6 basta che fati ctrl+c e poi ctrl+v e ti viene fuori un messaggio se vuoi creare la matrice, fai si e poi la richiami facilmente.

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non puoi.

    Deve creare un array di controlli, ovvero:

    1. aggiungi un controllo sul form, es. Label1)
    2. gli dai il nome che ti serve, es. lbl_val_giu_b (ma io eviterei gli underscore che sono scomodi)
    3. Vai nelle Proprietà del controllo ed imposti la proprietà Index = 0
    4. a questo punto selezioni il tuo controllo, lo copy (CTRL+C) e poi lo incolli (CTRL+V)

    automaticamente VB ti crea un secondo controllo con Index=1, se ripeti il punto 4 ne crea un'altro con Index=2, e così via.

    Ora, se fai doppio clic su uno dei controlli (qualsiasi) ti si apre la finestra del codice nell'evento Click e noterai che la firma della routine include il parametro Index As Integer.
    Aggiung un MsgBox, così

    codice:
    Private Sub Label1_Click(Index As Integer)
        MsgBox "Ho fatto clic sul controllo n°" & Index
    End Sub
    Il parametro Index è il numero che ti serve
    - sia per capire con quale dei controlli stai lavorando
    - sia per decidere con quale controllo lavorare

    Esempio
    codice:
    Label1(0).Caption = "Primo controllo Label"
    Label1(1).Caption = "Secondo controllo Label"
    Label1(2).Caption = "Terzo controllo Label"

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    86
    si lo sapevo, però dato ke ho usato quelle label per altree cose mi è scomodo rimpostare tutto!

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    86
    se nn si può fare in nessun modo allora mi faccio un select case sui valori che mi escono, grazie lo stesso

  6. #6
    Originariamente inviato da croccio
    si lo sapevo, però dato ke ho usato quelle label per altree cose mi è scomodo rimpostare tutto!
    ....allora puoi usare CallByName

    MsgBox CallByName(Me.Controls("Label1"), "Caption", VbGet)

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    86
    ma io eviterei gli underscore che sono scomodi[/QUOTE]cosa mi consilgli di usare?

  8. #8
    Originariamente inviato da croccio
    ma io eviterei gli underscore che sono scomodi cosa mi consilgli di usare?
    Eh?...

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    86
    Originariamente inviato da sspintux
    ....allora puoi usare CallByName

    MsgBox CallByName(Me.Controls("Label1"), "Caption", VbGet)
    nn mi è chiaro. mi stampa a video la caption della label, ma a me non serve questo.

    ragazzi com faccio a usare un numero in un nome di una label? mi spiego meglio..
    allora ho
    lbl_val_giu_1b
    lbl_val_giu_2b
    lbl_val_giu_3b

    genero un umero cauale compreso tra 1 e 3 e vorrei usare quel numero nel nome della label

    Randomize
    n=Int(Rnd * 2) + 1
    lbl_val_giu_(n)b.caption=""

    però non funziona.. come posso fare?

  10. #10
    hai solo tre label, non cento e neppure mille. Ci metti due secondi a cambiare il nome, e esiste anche il trova e sostituisci se sono richiamate molte volte nel codice. Usa un array di label che è molto più semplice da gestire

    codice:
    Randomize 
    n=Int(Rnd * 2) + 1 
    lbl_val_giu_(n)b.caption=""
    non va per il semplice fatto che per prima cosa il testo che mostra è vuoto. Inoltre stai dando un nome casuale alla label, e se questo numero viene riprodotto penso ti dia un errore anche se non lo ho mai privato.
    Sicuro che quel b vada bene li?

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.