Ciao a tutti,
Ho creato un programma in grado di leggere file vbs esterni grazie all'oggetto scriptcontrol, e ho bisogno di richiamare delle classi interne al programma.
Facendo un banale esempio.. ipotizzando di avere una classe ObjAuto, nel codice interno del programma scriverò:
Script.AddObject "Auto", ObjAuto, True
dove Auto, all'interno del codice è già stato valorizzato nelle sue proprietà.
Ho inserito poi un richtextcontrol, in cui a programma avviato, passerò le istruzioni digitate in vbs tramite queste istruzioni:
With ActiveForm
.Script.AddCode .RtfScript.Text
.Script.Run "Main"
End With
Fino qui tutto bene, avvio il mio programma per digitare le mie istruzioni vbs, come ad esempio:
sub Main()
msgbox Auto.velocità
end sub
dove magari mi viene stampato.. 90 km/h
ora arriva LA MIA DOMANDA..
In un codice vb creo l'oggetto Auto cosi..
Dim Auto as ObjAuto
Set Auto = new ObjAuto
così potro anche creare un oggetto Auto1, Auto2 ecc..
Per fare la stessa cosa scrivendo codice vbs a programma avviato come devo fare? Mi spiego meglio..
Avendo aggiunto allo scriptcontrol l'oggetto Auto (a programma avviato e nella finestra vbs predisposta) protrò usarlo immediatamente come già esposto prima:
sub Main()
msgbox Auto.velocità
end sub
MA ricevo un errore nel caso in cui volessi creare un nuovo oggetto Auto con le seguenti istruzioni:
sub Main()
dim Auto1
set Auto1 = CreateObject("ObjAuto")
end sub
comparendo il messaggio: Il componente ActiveX non può creare l'oggetto: 'ObjAuto'
Allacciandomi a quando chiesto devo chiedere ancora una seconda cosa. L'oggetto Auto aggiunto allo scriptcontrol è stato preventivamente istanziato nel codice interno del programma per il quale è stata allocata della memoria, quindi reso immediatamente disponibile per essere richiamato da istruzioni vbs (a programma avviato). C'è invece un modo per istanziare l'oggetto da istruzioni vbs, in modo da allocarne memoria solo quando necessario e in tal modo poter anche dichiarare più oggetti Auto come chiedevo prima?
Spero di essere stato abbastanza chiaro nella spiegazione e ringrazio chi mi potrà aiutare.
|