[Macro Writer] Texte du paragraphe courant

Bonjour,

Sous Writer, mon curseur visible est situé dans un paragraphe quelconque où rien n'est sélectionné. Je souhaite récupérer le texte de ce paragraphe.
Selon les indications du Marcelly-Godard, J'ai utilisé createTextCursorByRange pour créer un curseur dans ma macro à partir du curseur écran.
J'ai écrit :

sub test1()

     dim curdoc As Object
     curdoc = ThisComponent.CurrentController.ViewCursor

     dim sel As Object
     sel = curdoc.Text

     dim cur As Object
     cur = sel.createTextCursorByRange(curdoc)

     cur.gotoStartOfParagraph(false)
     cur.gotoStartOfParagraph(true)

     print cur.String

end sub

Or, le texte du curseur cur est toujours vide, que j'aie sélectionné quelque chose ou pas. Et comme mon but et de modifier le texte du paragraphe, ...
Qu'y a-t-il donc que je n'ai pas compris dans l'utilisation du curseur ?

Merci de vos conseils avisés.

Bonjour,

après qq tests :
  (on définit visiblement le curseur au de la phrase)
  cur.gotoStartOfParagraph(true)
  (idem comme la selection est active, il sélectionne le début jusqu'à la
fin. - je suppose)
  cur.gotoEndOfParagraph(true)

permet de sélectionner la phrase courante.

Yves.

Bonjour

Quelques compléments...

Ton code fonctionnerait en modifiant simplement une ligne (la seconde dans
cet extrait) :

'********************
     cur.gotoStartOfParagraph(false)
     cur.gotoEndOfParagraph(true)
'********************

Mettre le paramètre à true sur le premier déplacement est inutile.
On positionne le curseur au début du paragraphe puis on se déplace en
étendant la sélection jusqu'à la fin du paragraphe (c'est bien le paragraphe
et non la phrase en l'occurrence avec cette méthode).

Cordialement
Pierre-Yves

Merci à yves dutrieux et pierre-yves samyn pour leurs conseils.
Mais les explications du bouquin m'avaient conduit à conclure : je vais au début du paragraphe sans rien sélectionner, puis j'étends jusqu'à la fin donc en sélectionnant.
Cependant, je n'obtiens toujours pas ce que je cherche, à savoir le texte du paragraphe complet, c'est-à-dire (pour moi), la partie délimitée par des marques de paragraphe.

Résultat de mes tests sur l'option de sélection de texte lors des deux appels :
false / false : texte vide
false / true : idem
true / false : idem
true / true : ne renvoie que le texte depuis le début du paragraphe jusqu'à l a position du curseur visible, ce qui me semble non naturel.

La combinaison qui ramène ce que je cherche semble être :

     cur.gotoStartOfParagraph(false)
     cur.gotoNextParagraph(true)
     cur_sel.goLeft(1, true)

L'instruction 2 permet de récupérer tout le texte du paragraphe, l'instruction 3 évite de récupérer un saut de ligne manuel.

Bonjour

Rafael Laville wrote

Cependant, je n'obtiens toujours pas ce que je cherche

Un doute m'envahit... as-tu remarqué que la deuxième ligne que je te propose
ne diffère pas seulement par la valeur du paramètre ? Tu utilisais deux fois
gotoStart et non gotoStart puis gotoEnd.

Ton code initial :

cur.gotoStartOfParagraph(false)
 cur.gotoStartOfParagraph(true)

Mon code :
cur.gotoStartOfParagraph(false)
cur.gotoEndOfParagraph(true)

Ci-dessous une copie d'écran (le paragraphe courant est celui marqué
d'une bordure rouge à gauche)

<http://nabble.documentfoundation.org/file/n4023675/ParagEnCours.png>

Cordialement
Pierre-Yves

Merci de ta réponse. Et tu as raison, je n'avais absolument pas vu que j'utilisais deux fois la même fonction. Avec un nom aussi long, je m'étais exclusivement concentré sur l'argument de chacune.
Et donc, en appelant les bonnes fonctions, j'obtiens bien le texte du paragraphe. Et le fonctionnement apparait conforme à la signification des fonctions, donc plus intuitif.

Merci de ton attention vigilante.

RR