4 messages in org.openoffice.fr.progRe: [prog] piloter 2 documents en mêm...
FromSent OnAttachments
Jean MAURICEDec 2, 2007 12:31 pm 
Bernard MarcellyDec 3, 2007 5:21 am 
Jean MAURICEDec 4, 2007 12:27 am 
Serge LE LOUARNEDec 4, 2007 12:43 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] piloter 2 documents en même tempsActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Dec 3, 2007 5:21:47 am
List:org.openoffice.fr.prog

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