Plusieurs pistes :
- pour ton exemple, tu utilises insertString au lieu de
setString, ce qui a pour effet de ne pas écraser l'ancien
texte (une recherche dans la doc du SDK t'aurais
permi de trouver cette fonction)

- pour gérer des VRAIES sélections, il faut utiliser le
controlleur et les fonctions spéciales associées,
mais je ne crois pas que ce soit ce dont tu as besoin
Tu mélanges d'ailleurs cette notion avec celle des curseurs
(qui disposent intrinséquement de leur propre "sélection")!

- pour le centrage, il faut simplement appliquer les propriétés sur ton
objet CurseurCentre (et non sur ton objet sélection "oSel", qui ne sert
à rien pour ce que tu veux faire)
La "sélection" de ton texte est déjà faite avec ce bout de code :
>                 CurseurCentre.gotoStart(False)
>             CurseurCentre.gotoEnd(True)

AMHA, tu n'as pas passé assez de temps à étudier la doc du SDK
(ou tu ne maîtrises peut-être pas l'anglais).
Du coup, tu n'as pas compris les principes fondamentaux
du SDK. D'où perte de temps pour toi à faire des mails
sur cette liste pour le moindre petit problème et
perte de temps pour les autres qui te répondent (et qui 
ne vont plus te répondre si tu continues à poser de telles
questions...). Je le redis : une (auto-)formation ou la
lecture de documents/livres sur le SDK t'aiderait beaucoup.
De même, la lecture d'exemples de code sur le oooforum peut
t'être très utile.

Cdlt,
Emmanuel

> -----Message d'origine-----
> De : Cezame Concept [mailto:[EMAIL PROTECTED]
> Envoyé : jeudi 13 avril 2006 14:27
> À : prog@fr.openoffice.org
> Objet : RE: [prog] Entete et pieds de page
> 
> 
> Je dois être bête mais je n'arrive pas a sélectionner un 
> texte que je viens
> de créer dans un entête sous oOWriter
> 
> En fait je souhaiterai écraser l'entête a chaque fois que j'appelle ma
> fonction entête ...et pouvoir réaliser un cadrage (centre en 
> particulier)
> 
> Ci-dessous mon code sous VB .NET
> 
> Sub Entete(ByVal sTexteCentre As String, Optional ByVal 
> sEcraser As Boolean
> = True, Optional ByVal sCadrage As String = "Centre")
>         Dim monTexte As Object, monCurseur As Object
>         Dim TexteCentre As Object, CurseurCentre As Object
>         Dim nomStyleMaPage As String, StyleMaPage As Object
>         Dim lesStylesPage As Object
>         Dim Arguments(0) As Object
>         monTexte = oDocument.Text
>         monCurseur = monTexte.createTextCursor
>         ' récupérer le nom du style de page en cours
>         nomStyleMaPage = monCurseur.PageStyleName
>         ' print "Cette page est du style : " & nomStyleMaPage
>         ' récupérer la collection de styles de pages
>         lesStylesPage = 
> oDocument.StyleFamilies.getByName("PageStyles")
>         ' récupérer le style de la page en cours 
>         StyleMaPage = lesStylesPage.getByName(nomStyleMaPage)
>         With StyleMaPage
>             .HeaderIsOn = True ' insérer un entête
>             .HeaderBodyDistance = 1000 ' 10 mm
>             .HeaderHeight = 2500 ' 25mm
>             TexteCentre = .HeaderText ' zone de texte centre 
> de l'entête
>         End With
>         CurseurCentre = TexteCentre.createTextCursor ' 
> curseur centre dans
> l'entête
>         If sEcraser = True Then
>             CurseurCentre.gotoStart(False)
>             CurseurCentre.gotoEnd(True)
>             'Récupérer le texte sélectionné par le curseur
>             'monTexte =
> oDocument.Text.createTextCursorByRange(CurseurCentre)
>         End If
> 
>         ' écrire un texte dans l'entête
>         TexteCentre.insertString(CurseurCentre, sTexteCentre, False)
>         ' Gestion du cadrage
>         Select Case sCadrage
>             Case "Centre"
>                 oSel = oDocument.CurrentController.Frame
>                 Arguments(0) = MakePropertyValue("CenterPara", True)
>                 oDispatcher.executeDispatch(oSel, 
> ".uno:CenterPara", "", 0,
> Arguments)
>             Case "Droite"
>                 oSel = oDocument.CurrentController.Frame
>                 Arguments(0) = MakePropertyValue("RightPara", True)
>                 oDispatcher.executeDispatch(oSel, 
> ".uno:RightPara", "", 0,
> Arguments)
>             Case "Gauche"
>                 oSel = oDocument.CurrentController.Frame
>                 Arguments(0) = MakePropertyValue("LeftPara", True)
>                 oDispatcher.executeDispatch(oSel, 
> ".uno:LeftPara", "", 0,
> Arguments)
>             Case "Justifié"
>                 oSel = oDocument.CurrentController.Frame
>                 Arguments(0) = MakePropertyValue("JustifyPara", True)
>                 oDispatcher.executeDispatch(oSel, 
> ".uno:JustifyPara", "", 0,
> Arguments)
>         End Select
> 
>     End Sub
> 
> 
> Je pense que mon problème est lié au curseur .. comment 
> sélectionner le
> texte avant d'acrire pour pouvoir écraser le texte existant ?
> 
> 
> ________________________________________
> De : Cezame Concept [mailto:[EMAIL PROTECTED] 
> Envoyé : mardi 11 avril 2006 11:37
> À : prog@fr.openoffice.org
> Objet : [prog] Entete et pieds de page
> 
> Je précise ma demande ...
> En fait je souhaiterais par programmation avec VB Express 
> 2005 pourvoir
> modifier les entêtes et pieds de pages de documents oOClac et oOWriter
> Pour activer les entêtes et pieds j'utilise la commande suivante ...
> 
> Public Function ChargerService() As Boolean
>   'On Error GoTo sortie
>    oServiceManager = CreateObject("com.sun.star.ServiceManager")
>    oDesktop = 
> oServiceManager.createInstance("com.sun.star.frame.Desktop")
>    oDispatcher =
> oServiceManager.createInstance("com.sun.star.frame.DispatchHelper")
>    ChargerService = True
>     'Sortie:
>     'LoadService = False
> End Function
> Sub EntêtePiedDePage()
>    Dim Arguments(0) As Object
>    oSel = oDocument.CurrentController.Frame
>    oDispatcher.executeDispatch(oSel, 
> ".uno:EditHeaderAndFooter", "", 0,
> Arguments)
> End Sub
> Comment ensuite sélectionner les éléments a modifier ? Gauche 
> droite centre
> pour les entetes et pieds ...
> Comment insérer les champs prédéfinis (date N° page ...)
> Merci pour votre aide
> 
> --------------------------------------------------------------
> --------------
> -----------
> Wanadoo vous informe que cet e-mail a ete controle par 
> l'anti-virus mail.
> Aucun virus connu a ce jour par nos services n'a ete detecte.
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à