Newsgroup: it.comp.lang.visual-basic
Titolo: Creazione dinamica controlli.

Ciao a tutti,
vorrei fare una cosa del genere :
1. Dim lbl As Label
2. Set lbl = New Label
Ovvero creare in modo dinamico una label ed utilizzarla, solo che la riga 2
č sbagliata.
Andrebbe usato un escamotage, ovvero un array di label e ridimensionarlo di
volta in volta che serve.
Sarebbe piů corretto dichiarare un tipo label, definirlo ( allocare memoria
tipo riga 2) ed utilizzarlo.
Sapete come posso fare ?
ciao

 ha scritto nel messaggio
news:bnlq4d$giv$1...@grillo.cs.interbusiness.it...

son d'accordo con te su tutto: č piů corretto fare come intendi fare, ma vb
non te lo consente. Non č proprio vero, puoi creare run-time un controllo:
non ricordo esattamente, ma dovrebbe essere una cosa tipo Set etcEtichetta =
CreateObject("VB.Label"), ma dopo non riesci a gestirne gli eventi, perchč
non puoi scrivere in fase di progettazione codice per eventi su controlli
che esisteranno solo a run-time.
Quindi l'unica soluzione plausibile č quella di usare un array di controlli;
in progettazione ne hai solo uno, a run-time aggiungi tanti elementi quanti
te ne servono, e il codice lo gestisci come al solito......
in tal caso, vedi l'istruzione Load.....
good coding!!!
-- 
Alletun
Sorry, ask me if you want to get my e-mail!

 run-time.
direi che non č facile, ma č comunque possibile (nel senso che ci ero
riuscito)
http://www.vb2themax.com/HtmlDoc.asp?Table=Articles&ID=310
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

www.google.com
premi: Gruppi
scrivi: vb creare controlli runtime
premi: Cerca con Google
la prima che trovi
uff, che fatica...
Ciao, Luca.

 
http://www.vb2themax.com/HtmlDoc.asp?Table=Articles&ID=310
ho dato un'occhiata al link. Interessante, perň parte dal presupposto che
bisogna dichiarare WithEvents i controlli, quindi bisogna sapere a priori
quanti controlli ci serviranno e come si chiameranno.....mmhhh......
a questo punto la cosa piů veloce, IMHO, č la strada degli array, strada che
tra l'altro avrei seguito fin da subito.


 chiameranno...
sicurosicurosicuro?
io avevo adottato questa tecnica per costruire una maschera che visualizzava
il contenuto di una tabella: il codice "leggeva" la struttura della tabella
e aggiungeva di conseguenza i controlli necessari a visualizzare i campi. al
design time non "sapevo" assolutamente nè quanti nè che tipo di controlli
avrei generato...


 avrei generato...
l'ho letto velocemente, il codice è questo:
Dim WithEvents txtTotal As TextBox
Sub CreateTextbox()
' create a new TextBox control
Set txtTotal = Controls.Add("VB.TextBox",_
"txtTotal")
' move it where you need it
txtTotal.Move 1000, 800, 1200, 300
' all controls are invisible when created
txtTotal.Visible = True
End Sub
la textbox txtTotal non esiste in design-time, viene aggiunta tramite la
CreateTextBox in run-time. Però la sua dichiarazione WithEvents è scritta in
progettazione, quindi mentre sto scrivendo il programma devo già sapere che
creerò una casella di testo con quel nome.
mah, boh.....non so....


 la CreateTextBox in run-time
(snip)
mi sa che ti sei fermato alla prima pagina


 mi sa che ti sei fermato alla prima pagina
già, hai proprio ragione, scusa, c'hai ragione tu....
:-((
effettivamente leggendo più avanti, è tutto più chiaro. Bella soluzione,
bravo!!!


 
L'articolo e' interessante ed in alcune occasioni puo' tornare utile.
Solo che bisogna scrivere una montagna di codice ed a questo punto il 
programma me lo scrivo in C++. L'unico vero vantaggio di VB e' quello di 
poter creare "finestre" in maniera semplicissima. Se rinuncio a cio' a 
cosa mi serve VB?
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!