Bonjour,
Message de Jean MAURICE date 2007-12-02 21:31 :
J'ai des bloquages 'curieux' (Windows ne veut pas se fermer) qui se
débloquent si je tue le processus soffice.bin. Je soupçonne le fait que
j'essaie de travailler sur 2 documents Writer en même temps.
Tu peux ouvrir et gérer autant de documents OpenOffice
que tu veux, en même temps. Fais des essais simples. Tu as certainement
fait une erreur de programmation.
Je pense que les 3 lignes ci-dessous vous sont lisibles :
Merci de préciser le langage, quand ce n'est pas OOoBasic !
Avec ce langage tu pilotes OpenOffice à travers COM Automation. Ça
aussi, c'est utile à savoir.
Il est possible que les blocages soient liés à une mauvaise utilisation
de COM ou d'OpenOffice, ou de ton langage. Par exemple des ressources
non libérées.
This.gestionnaire_de_services = CREATEOBJECT(
"com.sun.star.ServiceManager" )
This.bureau = This.gestionnaire_de_services.createInstance(
"com.sun.star.frame.Desktop" )
This.doc = This.bureau.LoadComponentFromUrl( m.pcURL, "_blank", 0,
@aNoargs )
Si je veux travailler sur 2 documents, il me faut
- qu'un seul gestionnaires de service, un seul 'bureau' et autant de
pointeur 'this.doc' que de documents,
- qu'un seul gestionnaires de service et 1 'bureau' + pointeur par document
- 1 gestionnaire de service + 1 'bureau' + 1 pointeur par document ?
Ces trois variantes disent la même chose.
Me référant à ton codage (sans connaître le langage), chaque variable
précédée de This est créée pour chaque instance d'objet.
Pour manipuler plusieurs documents il suffit d'un seul Service Manager
et un seul Desktop. En déclarant ces variables dans l'objet tu
multiplies inutilement les connexions vers OpenOffice.
La programmation objet est très utile pour les problèmes complexes
(disons plusieurs milliers de lignes de codage), ou certains cas
spécifiques, mais à mon avis elle est lourde pour les problèmes simples
pour lesquels une bonne programmation structurée suffit.
______
Bernard
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]