

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
6 messages in org.openoffice.fr.progRe: [prog] Programmer OpenOffice avec...| From | Sent On | Attachments |
|---|---|---|
| Didier ALAIN | Aug 18, 2004 1:10 am | |
| Serge LE LOUARNE | Aug 18, 2004 8:57 am | |
| Bernard Marcelly | Aug 18, 2004 9:43 am | |
| Didier ALAIN | Aug 18, 2004 10:32 am | |
| Bernard Marcelly | Aug 19, 2004 5:20 am | |
| Didier ALAIN | Aug 20, 2004 2:00 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] Programmer OpenOffice avec Visual Basic | Actions... |
|---|---|---|
| From: | Didier ALAIN (didi...@laposte.net) | |
| Date: | Aug 20, 2004 2:00:26 am | |
| List: | org.openoffice.fr.prog | |
At 2004-08-18 19:33, Didier ALAIN wrote:
Bonjour Alain,
Visual Basic (VBA, pour être exact) n'est pas utilisable
avec OOo.
VBA est différent dans sa philosophie de l'API OOo. Mais sous Windows, avec COM, il est possible de piloter OpenOffice.org en Visual Basic et d'autres langages. Voir, en anglais, la section Code Snippets dans OOoForum <http://www.oooforum.org/>. En particulier, lire le fil <http://www.oooforum.org/forum/viewtopic.php?t=9815> qui indique le codage pour Visual Basic, Delphi, PHP, et d'autres langages. En gros, une fois la connexion COM réussie, le codage API est similaire à celui des macros Basic, à part la syntaxe. Je ne pratique pas VB, mais j'y arrive en Delphi. Pour le HowTo, il serait certainement tout à fait utile.
Bonne soirée Bernard
Merci Bernard,
Le problème est qu'en faisant le tour des forums OOo, on ne trouve que quelques dizaines de messages concernant la programmation par l'intermédaire de COM (précisément le pont Automation-UNO), et ils se résument tous à la "mise à l'étrier". Une fois passé cette étape, le chemin est long pour commencer à être à l'aise dans l'API. En particulier, les difficultés liées au pont Automation-UNO ne sont pas très documentées en dehors du devguide. Tu as sûrement une bonne connaissance de ces problèmes si tu programmes en Delphi. Un de mes soucis actuel est la gestion d'évènements, pour laquelle la mécanique en VB reste très compliquée (du moins pour moi pour le moment).
Je n'ai pas encore pratiqué ça avec COM, j'ai démarré il y a une semaine! Dans le Dev'Guide ch 3.4.4 on trouve une explication et un exemple sur l'implémentation de listeners avec VB, mais tu as dû la lire.
Le doc en l'état (brouillon en cours de compréhension/rédaction) se trouve à : http://www.kalitech.fr/clients/doc/APIOOo.html
Petite remarque sur les constantes nommées (qu'elles soient des constantes vraies ou des constantes énumérées) : le nom exact de la constante est le nom complet, à partir de com.sun.star.... Et évidemment, depuis un programme externe on n'a pas ces constantes. Il faut les définir localement avec la bonne valeur. On les trouve dans les fichiers de la branche idl/ du SDK.
Pour ce que tu appelles accès aux propriétés, cela ne concerne que la création d'une structure pour l'envoyer en argument d'une méthode. C'est heureusement peu courant. Dans l'autre sens, on récupère la structure et on l'utilise directement, par exemple pour modifier une ligne d'un tableau Writer: maLigne= lesLignes.getByIndex(2) maLigne.Height= 1000 maLigne.IsAutoHeight= False
Bernard
Bonjour et Merci Bernard,
Je n'ai pas encore pratiqué ça avec COM, j'ai démarré il y a une semaine! Dans le Dev'Guide ch 3.4.4 on trouve une explication et un exemple sur l'implémentation de listeners avec VB, mais tu as dû la lire.
Oui, je l'ai lue, c'est maigrichon. Si tu fais des progrès notables sur la gestion des évènements via le pont Automation-UNO, n'hésite pas à partager !!
Petite remarque sur les constantes nommées (qu'elles soient des constantes vraies ou des constantes énumérées) : le nom exact de la constante est le nom complet, à partir de com.sun.star.... Et évidemment, depuis un programme externe on n'a pas ces constantes. Il faut les définir localement avec la bonne valeur. On les trouve dans les fichiers de la branche idl/ du SDK.
OK, marqué en révision dans mon doc.
Pour ce que tu appelles accès aux propriétés, cela ne concerne que la création d'une structure pour l'envoyer en argument d'une méthode. C'est heureusement peu courant.
Assez courant quand même (paramètres d'ouverture ou d'enregistrement des fichiers, par exemple)
Dans l'autre sens, on récupère la structure et on l'utilise directement, par exemple pour modifier une ligne d'un tableau Writer: maLigne= lesLignes.getByIndex(2) maLigne.Height= 1000 maLigne.IsAutoHeight= False
Merci : c'était effectivement aussi approximatif dans la formulation que ça l'était dans ma tête. C'est maintenant plus clair et corrigé grâce à ton court mais puissant coup de projecteur !
Je vais traduire le doc en anglais ce week-end et ne maintiendrai que la version anglaise, faute de temps. Si des volontaires dans la ML veulent maintenir la VF, qu'ils se fassent connaitre !
cf derniers posts de http://www.oooforum.org/forum/viewtopic.php?t=11439
Accédez au courrier électronique de La Poste : www.laposte.net ; 3615 LAPOSTENET (0,34/mn) ; tél : 08 92 68 13 50 (0,34/mn)







