Bonsoir,

Je pense qu'en codant directement au moyen des API le problème pourrait
être solutionné.

Je n'ai pas vérifié faute de disposer d'une v3.0.1 sous la main.

Voici un bout de code à tester :

sub CurrentWordUnderline
  dim oDoc as object
  dim oText as object
  dim oSelection as object
  dim oCursor as object
  oDoc=ThisComponent
  oText = oDoc.Text
  Cursor = oDoc.currentcontroller.getViewCursor()
  oSelection = oText.createTextCursorByRange(Cursor.getStart())
  oSelection.gotoStartOfWord(false)
  oSelection.gotoEndOfWord(true)
  oSelection.CharUnderline = com.sun.star.awt.FontUnderline.SINGLE
end sub

Avec ma 3.1.0 (officielle) sous Ubuntu 8.10 cela fonctionne et ne
présente pas le problème de on/off (bascule).

fabs....@wanadoo.fr a écrit :
> Bonjour,
> 
> Je viens de constater un changement de comportement dans OOo3.1, par rapport 
> aux versions précédentes, dans l'enregistreur de macro lors du soulignement.
> 
> Jusqu'à présent, pour souligner un texte, j'utilisais la procédure ci-dessous 
> obtenue avec l'enregistreur de macro:
> 
> sub souligner
> dim document   as object
> dim dispatcher as object
> document   = ThisComponent.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
> dim args1(2) as new com.sun.star.beans.PropertyValue
> args1(0).Name = "Underline.Underline"
> args1(0).Value = 1
> dispatcher.executeDispatch(document, ".uno:Underline", "", 0, args1())
> end sub
> 
> Maintenant, cette procédure fait passer alternativement du soulignage au non 
> soulignage. Même comportement que si je mettais n'importe quelle chaîne de 
> caractères comme nom de l'argument args1(0).
> Dans OOo3.1, le nom de l'argument du "dispatcher" doit maintenant être 
> "Underline.LineStyle".

Mon enregistreur de macros me fournit le code suivant :
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Underline.LineStyle"
args1(0).Value = 1
args1(1).Name = "Underline.HasColor"
args1(1).Value = false
args1(2).Name = "Underline.Color"
args1(2).Value = -1

dispatcher.executeDispatch(document, ".uno:Underline", "", 0, args1())
end sub

> Problème: cet argument n'est pas reconnue dans les versions antérieures de 
> OOo...
> 
> D'où ma question: il y a-t-il moyen de faire fonctionner cette procédure dans 
> toutes les versions d'OOo?
> 
> Merci,
> 
> Cordialement,
> 
> Fabien.
> 

Francois Gatto


---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à