3 messages in org.openoffice.fr.progRe: [prog] CurrentComponent dans une ...
FromSent OnAttachments
Philippe AllartMay 21, 2007 1:41 am 
Bernard MarcellyMay 21, 2007 3:10 am 
Philippe AllartMay 21, 2007 4:17 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] CurrentComponent dans une macro lancée à l'ouvertureActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:May 21, 2007 3:10:36 am
List:org.openoffice.fr.prog

Bonjour Philippe, Message de Philippe Allart date 2007-05-21 10:42 :

Bonjour,

J'ai associé une macro X à l'évènement "lors de la création du document".

Dans cette macro j'ai utilisé thisComponent pour accéder au document courant.

Ca a toujours bien marché, jusqu'à ce que j'essaie de créer le document à partir d'une macro Y accessible via une barre d'outils. Dans ce cas, s'il y a déjà un document ouvert, c'est celui-là qui est retourné par thisComponent dans la macro X.

Je pense que la macro X est dans "Mes Macros". Si la macro X est dans le document thisComponent devrait renvoyer toujours ce document. Eventuellement, mettre dans le document une macro W qui appelle la macro X de "Mes Macros".

D'autre part il vaut mieux utiliser une variable intermédiaire: monDoc = thisComponent plutôt que de réutiliser thisComponent à chaque fois. En effet thisComponent est une fonction Basic, pas un objet fixe.

Mais ce n'est pas encore tout à fait satisfaisant.

Si la macro Y fait un msgBox, on se retrouve avec deux macros actives en même temps: la macro Y qui a ouvert le document et qui attend une action de l'utilisateur, et la macro X qui a été lancée automatiquement et qui, en l'occurrence, affiche une boite de dialogue.

la msgBox est verrouillée, et donc Y stoppée, jusqu'à ce que le macro X soit terminée.

Etreinte mortelle... Rien n'est prévu dans Basic pour les exécutions simultanées de macros. Cela peut engendrer des problèmes, comme ici.

Bernard