4 messages in org.openoffice.fr.progRe: [prog] Limiter l'effet d'un Rempl...
FromSent OnAttachments
Romain PelisseJan 30, 2009 10:45 am 
Bernard MarcellyJan 31, 2009 2:40 am 
Romain PelisseFeb 2, 2009 6:27 am 
Bernard MarcellyFeb 2, 2009 11:02 pm 
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] Limiter l'effet d'un Remplacer (ReplaceDescriptor) à la sélection couranteActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Feb 2, 2009 11:02:38 pm
List:org.openoffice.fr.prog

Message de Romain Pelisse date 2009-02-02 15:28 :

La méthode createReplaceDescriptor est seulement exposée par le document. Pas par CurrentSelection qui est un conteneur de sélections, ni par une sélection. Facile à voir avec Xray.

Oui, ... mais non ! :)

Car si tu examines avec xray l'object StarDesktop.CurrentComponent, tu ne verras pas non plus de méthode createReplaceDescriptor... Alors que cette invocation fonctionne à l'exécution et que cette méthode est indiqué par la documentation OpenOffice.org.

Exécuté depuis la fenêtre document, StarDesktop.CurrentComponent est équivalent à ThisComponent, c'est le document Writer. Et Xray affiche bien createReplaceDescriptor et createSearchDescriptor (plus facile à voir avec l'affichage en ordre alphabétique).

Mais StarDesktop.CurrentComponent.CurrentSelection n'est pas le document, et ne peut pas te fournir createSearchDescriptor. Si tu arrives à employer createReplaceDescriptor depuis CurrentSelection, prouve-le avec un bout de codage :-)

Ce qui m'ennuie avec cette méthode, c'est de devoir itérer, moi même à la main, dans le document... Je trouve bizarre que OOo ne fournisse pas une méthode pour appliquer un ReplaceAll à un textRange, et encore plus spécifiquement à un TextRange aussi évident que la sélection de l'utilisateur.

La doc API (IDL et Dev'Guide) ne laisse pas espérer cela.

Bon, visiblement, je n'ai pas le choix, je vais devoir parcourir moi même cette zone de texte, avec le nombre d'erreur de programmation que cela peut induire...

Ou bien utiliser le codage obtenu avec l'enregistreur de macros.

Cordialement, Bernard