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
---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org