Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311

    inserire in visual basic un controllo da codice

    Salve a tutti.
    Utilizzo Visual Basic 6.0 e per inserire un controllo da codice uso queste istruzioni senza problemi:

    Dim prova As Label
    Set prova = Controls.Add("vb.label", "prova")
    prova.Caption = "ciao"
    prova.Top = 0
    prova.Left = 0
    prova.Visible = True

    Volevo sapere come posso inserire più controlli sfruttando un array?
    ad esempio facendo così mi dà un errore:

    Dim prova(10) As Label
    For i=1 to 10
    Set prova(i) = Controls.Add("vb.label", "prova")
    prova(i).Caption = "ciao"
    prova(i).Top = 0
    prova(i).Left = 0
    prova(i).Visible = True
    Next i

    come posso risolvere?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    ad esempio facendo così mi dà un errore:
    Quale, dove, come, quando ???

    Comunque non puoi creare più label che si chiamano tutte "prova".
    Ti consiglio di usare un altro metodo. Metti una label sul form a design time e imposta la proprietà Index = 0.
    A run time è sufficiente un Load prova(i) all'interno del ciclo For...Next. Non dimenticare, sempre all'interno del ciclo, di impostare opportunamente le proprietà Top, Left e Visible.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    Perdonami ma sono ignorante sull'argomento!
    che significa design time?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Significa in fase di sviluppo, cioè mentre scrivi e disegni il tuo programma e ti trovi nell'ambiente di sviluppo (IDE) di Visual Studio. Al contrario "run-time" è il momento dell'esecuzione del programma.
    Vedo che non hai preso in considerazione le quattro domande che ti ho fatto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    ti prego perdona ancora una volta la mia ignoranza.

    mettiamo devo inserire 10 label da codice. nel form ne inserisco solo una? e la metto con index=0?

    poi qual'è la sintassi esatta del ciclo for next?
    me la scrivi per piacere?
    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Mi sembrava che la frase
    Load prova(i) all'interno del ciclo For...Next
    fosse abbastanza chiara.
    Essa si traduce in
    codice:
        For i = 1 To 10
            Load prova(i)
            prova(i).Top = ...
            prova(i).Left = ...
            prova(i).Visible = True
        Next
    Ti RI-faccio notare che non hai ancora detto niente sull'errore che ricevi.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da enzoiav
    poi qual'è la sintassi esatta del ciclo for next?
    me la scrivi per piacere?
    Scusa ... ma non avere questo tipo di conoscenze significa non avere mai letto le prime pagine di un libro ...

    L' "ignoranza" (nel senso di non conoscere) particolarita' del linguaggio o complessi algoritmi, si puo' capire, molto meno il fatto di non avere la voglia di PROVARE a scrivere qualche riga ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    ascolta io inserisco nel form 10 matrice di controlli label (invisibili), denominati:
    prova(1)
    prova(2)
    prova(3)
    prova(4)
    prova(5)
    ...

    poi da codice metto:
    For i = 1 To 10
    load prova(i)
    prova(i).Visible = True
    Next

    facendo così mi dà errore: controllo già caricato.
    invece togliendo load prova(i) funziona.
    però in questo modo, cmq devo inserirlo il controllo nel form... non viene inserito da codice.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Noto con piacere che la mia risposta e' stata assolutamente trasparente ...

    Originariamente inviato da enzoiav
    ascolta io inserisco nel form ...
    Tu devi SOLAMENTE inserire il controllo

    prova(0)

    e poi il ciclo for si occupa del resto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    scusa ho inserito un controllo prova(0)
    poi in un pulsante ho scritto questo codice:

    For i = 1 To 10
    Load prova(i)
    prova(i).Visible = True
    prova(i).Left = 10 * i
    prova(i).Top = 10 * i
    prova(i).Caption = i
    Next i

    solo che ne appare uno solo di controllo
    dove sbaglio?
    grazie

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.