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

Rispondere a