Le Tuesday 01 July 2008 11:36:12 Christophe Devalland, vous avez écrit :
> Bonjour,
>
> désolé pour ce message un peu technique.
> J'ai créé une extension CmathOOo et participé au projet Dmaths.
> Depuis la version 2.3.1, la fonctionnalité qui nous permet d'insérer une
> formule est buguée (j'ai ouvert l'issue
> http://www.openoffice.org/issues/show_bug.cgi?id=67283 qui n'en finit pas
> d'être résolue mais qui ne l'est jamais). La formule n'est pas
> redimensionnée ce qui fait qu'elle apparaît dans une boite minuscule (voir
> le code basic dans l'issue).
> Si on clique deux fois dessus, elle prend sa taille normale.
> Ma question : Peut-on simuler ce double clic en OOoBasic ?
Bonjour,
Je te recopie une réponse que j'avais proposée dans le forum user sur ton
problème:
J'ai écrit une petite macro qui parcours toutes formules et les réenregistre.
Ca évite de les éditer toutes à la main.
Je te donne le code ci-dessous:
Sub ParcoursFormules
dim i as integer
dim LesObjets as Object
dim Objet as Object
LesObjets=ThisComponent.getEmbeddedObjects
On error goto erreur
for i=0 to LesObjets.count-1
Objet=LesObjets(i)
if Objet.getImplementationName="SwXTextEmbeddedObject" then
if
Objet.embeddedObject.getImplementationName="com.sun.star.comp.math.FormulaDocument"
then
Objet.embeddedObject.setmodified(true)
endif
endif
next i
erreur:
resume next
end sub
Il faut juste être patient. Chez moi, le programme a modifié toutes les
formules en à peu près 1mn40. On peut améliorer en parcourant tous les
documents d'un répertoire, s'il y a beaucoup de fichiers a modifier.
Pour l'écriture de la macro, je me suis inspiré d'une macro de Laurent Godard
qui permet de modifier les tailles des formules.
J'espère que ça va aider à résoudre le problème, à défaut de le comprendre...
Fabien.
> Merci de vos idées.
>
> Pour info voici le code qui insère la formule :
>
> Sub InsereFormule(oViewCursor as Object, oTextCursor as Object, sPolice as
> String, iTaille as Integer, sFormule as String, bModeTexte as boolean)
> dim obj as object
>
> obj=ThisComponent.CreateInstance("com.sun.star.text.TextEmbeddedObject")
> obj.CLSID="078B7ABA-54FC-457F-8551-6147e776a997"
> obj.AnchorType=com.sun.star.text.TextContentAnchorType.AS_CHARACTER
> ThisComponent.getCurrentController().select(oTextCursor)
> oTextCursor.Text.insertTextContent(oTextCursor, obj, true)
> obj.EmbeddedObject.BaseFontHeight=iTaille
> obj.EmbeddedObject.FontNameVariables=sPolice
> obj.EmbeddedObject.FontVariablesIsItalic=true
> obj.EmbeddedObject.FontNameNumbers=sPolice
> obj.EmbeddedObject.FontNameText=sPolice
> obj.EmbeddedObject.FontNameFunctions=sPolice
> obj.EmbeddedObject.IsScaleAllBrackets=True
> obj.EmbeddedObject.RelativeIndexSubscript=0
> obj.EmbeddedObject.RelativeIndexSuperscript=0
> obj.EmbeddedObject.LeftMargin=30
> obj.EmbeddedObject.RightMargin=30
> obj.EmbeddedObject.RelativeSpacing=20
> obj.EmbeddedObject.IsTextMode=bModeTexte
> obj.EmbeddedObject.formula=sFormule
> obj.EmbeddedObject.setmodified(TRUE)
> obj.LeftMargin=0
> obj.RightMargin=0
> oViewCursor.goLeft(1,False)
> oViewCursor.goRight(1,False)
> end sub
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]