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:Jan 31, 2009 2:40:22 am
List:org.openoffice.fr.prog

Message de Romain Pelisse date 2009-01-30 19:45 :

Bonjour,

J'ai utilisé sans problème, à l'aide de la documentation en ligne, le ReplaceDescriptor pour remplacer un terme dans l'ensemble de mon document Writer. Maintenant, je souhaiterais pouvoir limiter ce remplacement à la sélection en cours de l'utilisateur.

Je pensais simplement faire ainsi

Doc = StarDesktop.CurrentComponent.CurrentSelection If IsNull(Doc) Then ' pas de sélection, on remplace tout Replace = StarDesktop.CurrentComponent.createReplaceDescriptor Else ' une sélection on remplace dedans Replace = Doc.createReplaceDescriptor End If

... mais ça ne marche pas. Le plus étrange c'est que , au debug, on s'arrête sur la création du Descriptor, sans message d'erreur.

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.

Bref, comment puis je construire une 'ReplaceDescriptor' à partir d'un 'TextRange' tel que celui que me retourne la méthode 'CurrentSelection' ?

Je ne pense pas que la méthode replaceAll puisse être limitée à une zone. Tu devrais t'inspirer de ce qui est expliqué dans le livre Programmation OpenOffice.org 2 à "Limiter le champ de recherche" et "Rechercher pour remplacer" en utilisant le TextRange de la sélection, et les méthodes findNext, compareRegionEnds.

Bernard