M. Manca ha scritto:
Paolo Mantovani ha scritto:
M. Manca ha scritto:
E' possibile utilizzare un controllo ActiveX da writer o calc?
Utilizzare come?
Ad esempio richiamandone le funzioni e/o classi/metodi contenuti via VBA
o il basic di OOo.
Ok, quindi non si tratta di usare "un controllo ActiveX da writer o
calc" ma da StarBasic.
Alcuni anni fa realizzai un semplice activex che mi
permetteva di interfacciare excel con un termostato via seriale, ora
dovrei rifare qualcosa di simile ma vorrei utilizzare OOo.
Va detto che in OOo l'"equivalente" dei componenti OLE/ActiveX sono i
componenti UNO
I componenti UNO possono essere sviluppati con vari linguaggi e poi
possono essere distribuiti come extension.
I componenti UNO possono essere integrati in OOo in molti modi, ad
esempio potresti creare un Add-in per Calc da richiamare direttamente
nelle celle (come funzione) oppure potresti creare un componente
arbitrario da richiamare poi nel codice StarBasic con la funzione
CreateUNOService()
Chiaramente questo richiederebbe la reimplementazione completa del tuo
progetto in un linguaggio diverso.
Ad esempio il Python è bene integrato in OpenOffice (può essere usato
per creare componenti UNO) e dovrebbe essere molto ben attrezzato
riguardo l'accesso alla porta seriale.
In alternativa a mio avviso puoi seguire due strade:
1) ottieni l'istanza del tuo activex.
Sinceramente non ho esperienze specifiche, ma secondo la guida dovrebbe
essere sufficiente la funzione CreateObject( "OleServer.ClassName" ) di
Starbasic.
Esiste anche una tecnica più specializzata:
oObjFactory = createUnoService("com.sun.star.bridge.OleObjectFactory")
oMyClass1 = oObjFactory.createInstance( "OleServer.ClassName" )
Print oMyClass1.hello()
Dopodichè per l'interfacciamento con Calc devi usare i comandi API specifici
2) crei un programa esterno in VB che funga da collante tra il tuo
activeX e Openoffice.
Per ottenere l'istanza di OOo da VB si usa
CreateObject("com.sun.star.ServiceManager")
Ciao
Paolo M
---------------------------------------------------------------------
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org