Newsgroup: it.comp.lang.visual-basic
Titolo: [?] programmi espandibili e "plugins"

Ciao a tutti,
sto per iniziare lo sviluppo di un nuovo applicativo abbastanza complesso.
L'applicativo in questione è un CAD.
Questo CAD sarà poi la base di sviluppo di altri software.
Mi spiego, è mia intenzione dotare l'applicazione di un solido modello ad
oggetti in modo da renderelo programmabile ed espandibile tramite dll
activeX (sulla falsa riga di word per capirci, o di Solidworks...)
Ho già iniziato a fare alcune prove e sono riuscito senza grossi problemi a
predisporre un menù apposito (strumenti....) che viene poi compilato in base
alla presenza o meno di determinate entry in un file ini (che puntano poi a
dll activex)....
ora la cosa mi apre un pò poco elegante e mi chiedevo se c'era modo di
realizzare la cosa in modo meno "manuale" ..
mi piacerebbe per esempio potewr aggiungere toolbar a runtime, ad esempio
Solidworks mi permette di definire la toolbar e i menu (con tanto di file
res) all'interno della mia dll activex.. questo tramite
un interfaccia che viene richiamata nella dll tramite "Implements"...
quelcuno di voi ha esperienza in merito? mi potete dare qualche dritta?
grazie
Davide

 wrote in message
news:KIdR9.50766$Q%4.16...@news1.tin.it...

Il tuo problema non sembra essere così risolvibile come con queste
informazioni. Non so se ho capito, ma potresti crearti una dll che attivi un
pannello di controllo da dove puoi specificare i componenti aggiuntivi che
vuoi inserire.
Ciao.
--
Massimo Bonechi
Responsabile Area Sviluppo
(
massimo...@startit.it
)
Startit Technologies
Via Alfani, 14
59012 Prato (PO) - Italy
Tel.  +39 0574 661228-815440
Fax. 
+39 0574 668907
www.startit.it
-----------------------------------

 vuoi inserire.
chiedo venbia mi sono spiegato da cani....
quello che mi interessa fare in primis è dare la possibilità all'utente di
aggiungere una toolbar al mio applicativo...
quindi il mio applicativo deve essere in qualche modo "preparato" a creare
una toolbar con le risorse specificate nella dll activex...
esempio:
dll activex ha una risorsa con 4 bmp x  una toolbar con 4 bottoni
la dll richiamerà un determinato metodo della mia applicazione che gli
consente di passare al mio applic. le risorse e creare all'interno del sw
"host"
la toolbar, ovviamnete gli eventi di questa toolbar vanno gestiti dalla dll
activex.
è qui che non so bene come procedere.... come faccio a fare in modo che la
toolbar creata dalla DLL dentro l'applicativo faccia da GUI per la DLL?
altra domanda era a cosa serve implements (o meglio se mi può servire per
definire un'interfaccia tra exe e dll....)
Grazie
Davide

 ha scritto nel messaggio
news:g7gR9.51352$Q%4.16...@news1.tin.it...

In effetti Implements ti consente di "implementare" una interfaccia comune a
più applicativi/componenti per fare in modo che possano interagire tra loro.
Per esempio, se definisci una interfaccia (es. usando MakeTyp o creando una
DLL x  "vuota") puoi implementarla in una classe per fare in modo che essa
risponda con determinate funzionalità e possa interagire con un'altra classe
(...in un'altro eseguibile) che implementa la stessa interfaccia con
funzioni
complementari.   ...è una estrema sintesi, spero di essere stato chiaro.
Quindi per integrare una GUI potresti realizzare un controllo activex che
incorpora a
sua volta il tools (la toolbar) personalizzata e interagisce con
l'applicativo tramite
una interfaccia condivisa e _implementata_ da entrambi con le relative
funzioni
(che presumo complementari).
Regola di ferro: una volta che hai realizzato la type libary che definisce
l'interfaccia
e l'hai implementata da qualche parte non puoi più modificarla, per usare le
parole
della guida di M$  "è come un contratto"  (in realtà puoi cambiarla ma per
il momento
meglio tenere questa regola valida).
Bye, Clod.

 più applicativi/componenti per fare in modo che possano interagire tra
loro.
Grande!
proprio ciò di cui ho bisogno ;).
potresti dirmi dove trovare maggiori informazioni? MSDN oppure è
un'informazione
da scovare in luoghi + nascosti?
grazie di tutto!
Davide