PDA

Visualizza la versione completa : [VB] Creazione "dinamica" di oggetti


torresimo
30-04-2002, 11:19
Ciao a tutti!!
Ecco il mio problema:

Devo creare delle checkbox durante l'esecuzione del programma, non sapendo a priori quante. Non posso quindi crearle a Design Time, ma devo poterlo fare in maniera diciamo dinamica.

E' possibile? SarÓ senz'altro una cavolata, ma ci sto diventando matto!!

Grazie!!!!

Ciao
Simone

Boldan
30-04-2002, 12:28
Innanzitutto inserisci nel form un checkbox (a cui io ho dato nome Chk_Settore)
e inserisci nella proprietÓ index di tale checkbox il valore 0
Questo sarÓ il checkbox dal quale creerai tutti gli altri (purtroppo VB6 non
permette ancora l'utilizzo di strumenti come l'ereditarietÓ, ecc... quindi l'unico
sistema per creare oggetti dinamici Ŕ quello di predisporre un Array di componenti
inserendo nella form solo l'elemento 0, e procedere poi con la creazione dinamica
mediante il metodo Load di tutti gli altri).
Per ulteriori informazioni consulta l'help di VB sul metodo Load

Dopo aver inserito tale checkbox nella form copia il codice seguente nell'evento Form_Load()

Private Sub Form_Load()
Dim x As Integer
'qui inserisci il numero di check che vuoi creare
x = 10
For i = 1 To x
'creo il checkbox i-esimo
Load Chk_Settore(i)
'ne imposto alcuni valori di partenza
Chk_Settore(i).Top = Chk_Settore(0).Top + (i * (Chk_Settore(0).Height))
Chk_Settore(i).Caption = "Settore" & Str(i)
Chk_Settore(i).Visible = True
Next i
End Sub

Ora esegui l'applicazione.
Ciao.
:quipy:

vonkranz
30-04-2002, 14:40
QUI (http://forum.html.it/forum/showthread.php?threadid=171322&highlight=controls.add) c'e' una delle tante discussioni aperte in merito.
Ciao.

torresimo
13-05-2002, 15:17
scusate il ritardo nel ringraziarvi ma mi sono trasferito e solo oggi sono riuscito a riattivare la connessione ad internet.

Ci sono riuscito!! Per˛ ora ho un altro problema:
devo "scaricare" (unload) tutte le checkbox che ho caricato;
cosa ho fatto:
un bel ciclo for al cui interno faccio l'unload della check box i-esima (esattamente com sopra per la load).
Funziona tutto bene se questo codice lo metto nella funzione _Click di un Bottone, se per˛ lo metto nella _Click di una ComboBox mi da un errore del tipo: "impossibile scaricare in questo contesto"

Cosa significa? PerchŔ in quel punto non funziona?

Aiutatemi, vi prego!!!!

Ciao
Simone

jackallo
12-06-2002, 12:14
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbmsgldcantunloadhere.asp

Loading