Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Aggiungere "dinamicamente" controlli ActiveX in una form

Ciao a tutti,
io ho VB6
Vorrei sapere se esiste un modo (COM ?) per aggiungere a runtime un
controllo ActiveX ad una form, controllo che nel progetto, quando č
stato compilato, non esisteva.
In pratica vorrei creare una applicazione modulare, dove
l'applicazione base si configura leggendo un file di configurazione,
carica gli ActiveX necessari e li mette uno per form.
Gli eventi dell'ActiveX saranno identici per tutti.
Le proprietą ed i metodi pure.
Si puņ fare?
Ciao a tutti
Ettore Maronese, il Mes

*il Mes* ha scritto:


 stato compilato, non esisteva.
Ciao Ettore,
non ne so molto (nč so se quello a cui mi riferisco č un Server ActiveX,
piuttosto che un "normale" Activex, insomma, non č roba mia), ma si dovrebbe
poter fare cosě:
Public Nome_Oggetto As Object
Set Nome_Oggetto = CreateObject("Oggetto_ActiveX")

 Ettore Maronese, il Mes
Salve a Tutti!
Certo che si può fare:
si dichiara una variabile oggetto come dice Lupo, poi la si istanzia con la
funzione CreateObject("NomeACTIVEX.NomeClasse"). A questo punto si possono
utilizzare tutte le proprietà, gli eventi ed i metodi della classe pub blica
dell'ActiveX di cui si è creata l'istanza.
Es:
Option Explicit
Dim OggettoCreato As Object
Private Sub Command1_Click()
  OggettoCreato.Init ' Chiamo la funzione pubblica INIT del mio ActiveX che
inizializza le sue variabili
  OggettoCreato.ShowMain ' Chiamo la funzione ShowMain del mio ActiveX che
mostra la sua Form principale
End Sub
Private Sub Form_Load()
  Set OggettoCreato = CreateObject("MioActiveX.cMain") ' cMain Classe
pubblica del mio ActiveX
End Sub

 dell'ActiveX di cui si è creata l'istanza.
[SNIP]
Attenzione che Ettore parla di *controlli* ActiveX, non di componenti in
genere, la cosa e' molto diversa... la risposta corretta e' quella di Lord
Rayden
C'e' un esempio calzante anche sulla guida, relativamente al metodo Add
dell'insieme Controls
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 stato compilato, non esisteva.
Se per Controllo intendi qualcosa tipo le Textbox la stada è:
Form1.Controls.Add()
Es.:
    Dim t As Object
    Set t = Form1.Controls.Add("VB.TextBox", "Pippo")
    ' puoi usare la collection controls...
    Form1.Controls("pippo").Visible = True
    ' ...oppure la tua var
    t.Text = "Ciao"
Se nel tuo progetto includi il riferimento al controllo puoi dichiarare t in
modo tipizzato, così hai pure l'intellisense.
Si possono anche aggiungere array di controlli ma non ricordo di preciso
come si fa, cerca in google, avevo già affrontato questo problema qualche
mese fa in risposta a Lupo se non ricordo male.
Ciao

 ha scritto nel messaggio
news:b98hp3$g89nm$1...@ID-138791.news.dfncis.de...

Ops,
avete ragione....
la prossima volta sto più attento... :-) :-)
Mattia

     t.Text = "Ciao"
Esatto, intendevo proprio questo.
Ho fatto una ricerca anche su google; la mail a cui fa riferimento Lord non
l'ho trovata, o meglio, ho trovato quest'altra:
http://groups.google.com/groups?q=a+run+time+group:it.comp.lang.visual-basic
&hl=it&lr=&ie=UTF-8&group=it.comp.lang.visual-basic&selm=WW6i2.4244%24u8.117
04%40remarQ2&rnum=4
Datata 1998 !??
Faccio un po di prove e poi vi faccio sapere.
Grazie a TUTTI!
Ettore Maronese, il Mes

 Lord non l'ho trovata, o meglio, ho trovato quest'altra:
Perchè era troppo recente: o lo cerchi in OE in base al titolo, data 5/5
oppure aspetti che google si sincronizzi! ;)
hth