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]