Newsgroup: it.comp.lang.visual-basic
Titolo: Oggetti e Stringhe

Ciao a tutti,
Vi rompo per un  quesito probabilmente banale dato il mio livello ultrabase 
in VB:
Se voglio creare da codice il nome di un controllo ( una combobox ) ottengo 
una stringa :
NomeCombobox  =  valore & "List"
Se poi nel proseguo del programma avessi bisogno di dire :
Dim NomeCombobox as Object
( Ne ho bisogno per usare un ciclo With che usa object.... )
VB giustamente si arrabbia perchč NomeCombobox per lui č una stringa !
Come ne esco ?

NomeCombobox  =  valore & "List"
Uhm...
non so se dico una cazzata ma quellol che fai tu non ha senso,
so' le undici e non mi va di spiegare,,,
quello che ti serve è
Dim Controllo as new [tipoControllo]
E vedrai che avrai tutte le prorpietà di controllo
(IL .TEXt, il .index e le altre...)
Quindi:
Ad esempio dim ObjTxt1 as textbox
ObjTxt1.text = "Questo è il testo di OBJ1TXT1.text"
Claro?

 
l'esempio che fai tu e' realizzabile solo in linguaggi di scripting tipo 
PHP e simili, nei linguaggi compilati, che conosco, non ho mai visto una 
cosa cosi'.
l'unico metodo per VB di fare qualcosa simile a quello che dici e' questo:
' copiato pari-pari da MSDN cercando 'Controls'
Option Explicit
' Dichiara una variabile oggetto di tipo CommandButton.
Private WithEvents cmdObject As CommandButton
Private Sub Form_Load()
    Set cmdObject = Form1.Controls.Add("VB.CommandButton", "cmdOne")
'--------------------------------------^^tipo^^^^^^^^^^ ,  ^Nome^)
    cmdObject.Visible = True
    cmdObject.Caption = "CommandButton dinamico"
End Sub
Private Sub cmdObject_Click()
     Print "Controllo aggiunto in modo dinamico"
End Sub
bye
r

 Come ne esco ?
Premesso che ti hanno già risposto che quello che hai scritto tu non ha molto
senso, perché un conto è il *nome* di un oggetto, un altro è invece la
*variabile* oggetto, forse quello che ti può servire è questo:
Dim ctl As Control
    Set ctl = Controls.Add("VB.ComboBox", NomeCombobox)
    ctl.Visible = True
Approfondisci l'argomento guardando nella guida la collection Controls:
http://msdn.microsoft.com/library/en-us/vb98/html/vbmthaddmethod(controlscollection).asp
Bye
Raf

Ciao Akuma !
Grazie per la info ma come al solito non mi sono spiegato bene...
Lo rifaccio usando il tuo esempio :
Set combo = Controls.Add("VB.ComboBox", valore, FrameContenitore)
combo.Top = 720
combo.Left = 120
combo.Visible = True
Se come mi hai mostrato tu creo un controllo il problema mio è "come lo 
chiamo" nel codice che segue :
valore.AddItem "azrael"
Se infatti cerco di aggiungere un valore alla combobox con il comando qui 
sopra VB si arrabbia dicendo che
valore è un "qualificatore non valido" !
Stessa cosa se provo a dire : Dim valore as ComboBox , VB giustamente mi 
dice "Dichiarazione doppia nell'aria di validità corrente" !
Spero di essere stato più chiaro.
Grazie.

 valore.AddItem "azrael"
anche qui lo devi chiamare 'combo'
combo.AddItem "azrael"
bye
r

Grazie a tutti per l'interessamento!!!
Il problema rimane... come ho scritto più chiaramente ( credo...) nella 
risposta ad Akuma.
Sintetizzando è questo : Se creo un controllo da codice , poi come lo chiamo 
per settarne ad esempio le proprietà ????
Ciao e ancora grazie.

 ha scritto nel messaggio 
news:dmh8s1$51k$1...@area.cu.mi.it...



Il mio parere è che non lo chiami ma ti tieni una variabile che si riferisca 
ad esso e lavori con quella.
Se hai tanti controlli, allora costruisciti una collection dei controlli che 
crei, e in fase di inserimento (TuaCollection.Add)
ci metti come key quello che vuoi (magari il nome così fai quello che mi 
sembra tu voglia fare).
così dovrebbe andare ma mi sembra che probabilmente quello che vuoi fare tu 
(che non siè capito) si potrebbe fare in qualche
altra maniera più semplice
Ciao,
    Diego
Buon lavoro!