3 messages in org.openoffice.fr.progRe: [prog] Mise en majuscules
FromSent OnAttachments
Louis VidonneDec 24, 2006 3:07 am 
Hervé GracDec 24, 2006 3:36 am 
Louis VidonneDec 24, 2006 9:17 am 
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] Mise en majusculesActions...
From:Hervé Grac (herv@wanadoo.fr)
Date:Dec 24, 2006 3:36:57 am
List:org.openoffice.fr.prog

Louis Vidonne a écrit :

Bonjour,

J'ai écrit une macro qui me permet dans Writer de mettre en majuscule la lettre précédent le curseur ; ça me sert pour mettre en majuscule le ç et les voyelles accentuées, quel que soit le style. Cette macro marche bien, sauf si je l'emploie par inadvertance avec un caractère qui n'a pas de majuscule (les " ' - _ = ^$ * etc.). Ces caractères sont laissés inchangés (ce qui est correct) mais la remise en mode CaseMap NULL ne se fait pas : les caractères suivants sont tous mis en majuscules.

Quelqu'un a-t-il une idée de ce qui se passe ?

les caractères qui n'ont pas de majuscule ne sont pas des lettres et ne font donc pas partie d'un mot donc en changeant la ligne suivante chez moi ça marche (si j'ai bien compris la macro !)

Sub UpperCase() ' mise en majuscule (sans autre changement de style) du caractère à la gauche du curseur visible) ' les caractères qui seront tapés ensuite seront dans le style courant Dim oMonTexte As Object, oMonDoc As Object Dim oMonCurseur As Object, oCurseurVisible As Object oMonDoc = thisComponent oMonTexte = oMonDoc.Text oCurseurVisible = oMonDoc.CurrentController.ViewCursor ' le curseur de travail prend la position du curseur visible oMonCurseur = oMonTexte.createTextCursorByRange(oCurseurVisible) ' On recule d'un caractère ; le True signifie qu'on étend la sélection oMonCurseur.goLeft(1, True) ' on met la sélection en majuscules oMonCurseur.CharCaseMap = com.sun.star.style.CaseMap.UPPERCASE ' on retourne à la fin du mot (sans étendre la sélection) commenter : oMonCurseur.gotoEndOfWord(False)

remplacer par : oMonCurseur.goRight(1,False)

' et on enlève tout formatage local oMonCurseur.CharCaseMap = com.sun.star.style.CaseMap.NONE ' c'est ici que ça coince semble-t-il End Sub

joyeux noël

Hgrac