Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Open Office

8 réponses
Avatar
Michel
Je tente ma chance de ce coté ;-)

Comment déclarer un objet qui est créé (ou sera créé) dynamiquement par un
autre objet ?
le début de code ci après entraine une erreur sur le type de l'objet.

//Erreur :L'objet sur lequel on appelle la méthode loadComponentFromURLn'est
pas un objet Automation.

J'ai essayé en déclarant StarDesktop comme un Variant (en m'inspirant de
code Delphi)
//Erreur : Types incompatibles durant une affectation"

Si un pro des objet a une idée, je suis preneur ?

.Michel



MonService est un objet automation dynamique
StarDesktop est un objet automation dynamique
Url est une chaîne = "file::///C:/temp/test.sxw"
doc est un objet dynamique

// Instance de OOO existante
SI ObjetActif("com.sun.star.ServiceManager") <> Null ALORS
// Récupération de l'instance existante
MonService = ObjetActif("com.sun.star.ServiceManager")
SINON
// Allocation de l'objet automation
MonService = allouer un objet automation "com.sun.star.ServiceManager"
FIN

StarDesktop=MonService>>createInstance("com.sun.star.frame.desktop")
//Apparemment OK soffice est cahargé en mémoire

Urldoc=StarDesktop>>loadComponentFromURL(Url,"_blank",0)
//Erreur :L'objet sur lequel on appelle la méthode loadComponentFromURL
n'est pas un objet Automation.







---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004

8 réponses

Avatar
Romuald.besset
Michel wrote:

Je tente ma chance de ce coté ;-)

Comment déclarer un objet qui est créé (ou sera créé) dynamiquement par un
autre objet ?
le début de code ci après entraine une erreur sur le type de l'objet.

//Erreur :L'objet sur lequel on appelle la méthode loadComponentFromURLn'est
pas un objet Automation.

J'ai essayé en déclarant StarDesktop comme un Variant (en m'inspirant de
code Delphi)
//Erreur : Types incompatibles durant une affectation"

Si un pro des objet a une idée, je suis preneur ?

.Michel



MonService est un objet automation dynamique
StarDesktop est un objet automation dynamique
Url est une chaîne = "file::///C:/temp/test.sxw"
doc est un objet dynamique

// Instance de OOO existante
SI ObjetActif("com.sun.star.ServiceManager") <> Null ALORS
// Récupération de l'instance existante
MonService = ObjetActif("com.sun.star.ServiceManager")
SINON
// Allocation de l'objet automation
MonService = allouer un objet automation "com.sun.star.ServiceManager"
FIN

StarDesktop=MonService>>createInstance("com.sun.star.frame.desktop")
//Apparemment OK soffice est cahargé en mémoire

Urldoc=StarDesktop>>loadComponentFromURL(Url,"_blank",0)
//Erreur :L'objet sur lequel on appelle la méthode loadComponentFromURL
n'est pas un objet Automation.







---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004




Bonjour,

Quid d'une déclaration simplement dynamique pour StarDesktop...

StarDesktop est un objet dynamique
...

Reste ensuite à trouver la solution pour l'allocation... CreateInstance
retourne-t elle l'adresse de l'instance ?

@+ R&B
Avatar
Michel
> Bonjour,

Quid d'une déclaration simplement dynamique pour StarDesktop...

StarDesktop est un objet dynamique
...


cela ne marche pas, j'ai déjà essayé
Erreur sur la ligne de StarDesktop = MonService>>CreateInstance() : On ne
peut pas affecter à un objet autre chose qu'un objet de la même classe.
Il faut donc préciser la classe lors de la déclaration ??

Reste ensuite à trouver la solution pour l'allocation...
CreateInstance retourne-t elle l'adresse de l'instance ?



Pour le moment createInstance retourne NULL :-((

Michel


---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004
Avatar
Romuald.besset
Michel wrote:
Bonjour,

Quid d'une déclaration simplement dynamique pour StarDesktop...

StarDesktop est un objet dynamique
...



cela ne marche pas, j'ai déjà essayé
Erreur sur la ligne de StarDesktop = MonService>>CreateInstance() : On ne
peut pas affecter à un objet autre chose qu'un objet de la même classe.
Il faut donc préciser la classe lors de la déclaration ??



ok

Reste ensuite à trouver la solution pour l'allocation...
CreateInstance retourne-t elle l'adresse de l'instance ?




Pour le moment createInstance retourne NULL :-((



là est le problème...

StarDesktop = ...>>createInstance affecte Null = objet vide
d'où l'erreur pas la suite.

@+ R&B
Avatar
Michel
Le probleme s'est déplacé, j'ai gagné une instruction, il s'agissait d'une
majuscule absente dans une doc (le D de Desktop).
je bute sur le 4 eme paramètre de loadComponentFromURL, qui peut être un
substituant ??? il s'agirait d'un champ de donnée ???
le programme me jète.
une idée ?


// Création des objets automation dynamiques
MonService est un objet automation dynamique
MonGraphe est un objet automation dynamique
StarDesktop est un objet automation dynamique
fileProp est un objet automation dynamique = Null
Doc est un objet automation dynamique

Url est une chaîne

// Instance de OOO existante
SI ObjetActif("com.sun.star.ServiceManager") <> Null ALORS
// Récupération de l'instance l existante
MonService = ObjetActif("com.sun.star.ServiceManager")
SINON
// Allocation de l'objet automation
MonService = allouer un objet automation "com.sun.star.ServiceManager"
FIN

StarDesktop=MonService>>createInstance("com.sun.star.frame.Desktop") //OK ??

Url="private:factory/swriter" //pour ouvrir un document en création

Doc=StarDesktop>>loadComponentFromURL(Url,"_blank",0,fileProp)





---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004
Avatar
eandrieux
Bonjour,

Je vous invite à essayer avec le code suivant :

fileProp est un tableau dynamique de 1 entiers
Doc=StarDesktop>>loadComponentFromURL(Url,"_blank",0,fileProp)

(en VB l'argument passé est déclaré en Dim args() ce qui semble correspondre
à un tableau dynamique...)

Etant très intéressé par l'automation avec openoffice, n'hésitez pas à
publier vos avancés dans le domaine... :-)

Cordialement
Etienne Andrieux

"Michel" a écrit dans le message de news:
buh6fv$8vi$
Le probleme s'est déplacé, j'ai gagné une instruction, il s'agissait d'une
majuscule absente dans une doc (le D de Desktop).
je bute sur le 4 eme paramètre de loadComponentFromURL, qui peut être un
substituant ??? il s'agirait d'un champ de donnée ???
le programme me jète.
une idée ?


// Création des objets automation dynamiques
MonService est un objet automation dynamique
MonGraphe est un objet automation dynamique
StarDesktop est un objet automation dynamique
fileProp est un objet automation dynamique = Null
Doc est un objet automation dynamique

Url est une chaîne

// Instance de OOO existante
SI ObjetActif("com.sun.star.ServiceManager") <> Null ALORS
// Récupération de l'instance l existante
MonService = ObjetActif("com.sun.star.ServiceManager")
SINON
// Allocation de l'objet automation
MonService = allouer un objet automation "com.sun.star.ServiceManager"
FIN

StarDesktop=MonService>>createInstance("com.sun.star.frame.Desktop") //OK


??

Url="private:factory/swriter" //pour ouvrir un document en création

Doc=StarDesktop>>loadComponentFromURL(Url,"_blank",0,fileProp)





---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004




Avatar
Michel
eandrieux wrote:
Bonjour,

Je vous invite à essayer avec le code suivant :

fileProp est un tableau dynamique de 1 entiers
Doc=StarDesktop>>loadComponentFromURL(Url,"_blank",0,fileProp)

(en VB l'argument passé est déclaré en Dim args() ce qui semble
correspondre à un tableau dynamique...)


Dommage !
Erreur : Le paramètre 4 n'est pas convertible en paramètre automation.

Etant très intéressé par l'automation avec openoffice, n'hésitez pas à
publier vos avancés dans le domaine... :-)



C'est bien mon intention, ;-)

Michel


---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004
Avatar
eandrieux
Bizarre car chez moi (Windev 8.0 avec XP et OpenOffice 1.1), le source
suivant fonctionne correctement...

objServiceManager, objDesktop, objDocument sont des objets automation
dynamique

objServiceManager = allouer un objet automation
"com.sun.star.ServiceManager"
objDesktop = objServiceManager>>createInstance("com.sun.star.frame.Desktop")

args est un tableau dynamique de 1 entiers
objDocument = objDesktop>>loadComponentFromURL("private:factory/swriter",
"_blank", 0, args)

libérer objDocument
libérer objDesktop
libérer objServiceManager

Cordialement
Etienne Andrieux


"Michel" a écrit dans le message de news:
buhh5n$5il$
eandrieux wrote:
> Bonjour,
>
> Je vous invite à essayer avec le code suivant :
>
> fileProp est un tableau dynamique de 1 entiers
> Doc=StarDesktop>>loadComponentFromURL(Url,"_blank",0,fileProp)
>
> (en VB l'argument passé est déclaré en Dim args() ce qui semble
> correspondre à un tableau dynamique...)
Dommage !
Erreur : Le paramètre 4 n'est pas convertible en paramètre automation.

> Etant très intéressé par l'automation avec openoffice, n'hésitez pas à
> publier vos avancés dans le domaine... :-)

C'est bien mon intention, ;-)

Michel


---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004




Avatar
Michel
Exact, après reboot de ma machine tout se passe bien. peut-être des
ressources mal libérées suite à mes essais anarchiques.

Un grand pas !

Dès que j'ai quelquechose de présentable, je communique.

A moins que d'ici là je sois planté de nouveau ;-)

Michel



---
Ce message est certifié sans virus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004