Bonjour Christophe Devalland,
Message du 2005-09-26 22:17:
A présent, un des trois modes de fonctionnement ne marche plus : si j'appelle le programme avec comme objet sélectionné une formule (c'est le cas n°1 du programme de Laurent), alors, le test : if LaFormule.getImplementationName = "SwXTextEmbeddedObject" est faux alors qu'il était vrai si je n'ouvrais pas la boite de dialoque. (je suis en version 1.1.4, voir code ci-dessous)

j'ai alors placé l'instruction
    LaFormule=ThisComponent.getCurrentSelection()
en 1ère ligne, avant l'affichage de la boite de dialogue : c'est pire car il semble qu'openoffice bug et n'affiche plus la boite de dialogue, l'éditeur BASIC ne veut plus se fermer, en attente que la macro se termine, ce qui est impossible car la boite de dialogue est virtuellement ouverte mais non affichée. Obligé de fermer salement openoffice.


voici le début du code :

Sub AffecteFormule
oViewCursor = ThisComponent.getCurrentController().getViewCursor()
oTextCursor=oViewCursor.Text.createTextCursorByRange(oViewCursor)
    DialogLibraries.LoadLibrary("CmathOOo")
oDialogPoliceFormules = CreateUnoDialog(DialogLibraries.CmathOOo.DialogPoliceFormules) oDialogPoliceFormules.Model.TextFieldPolice.Text=oTextCursor.CharFontName
    oDialogPoliceFormules.Model.TextFieldTaille.Text=oTextCursor.CharHeight
    oDialogPoliceFormules.Execute()
    iTaille=val(oDialogPoliceFormules.Model.TextFieldTaille.Text)
    sPolice=oDialogPoliceFormules.Model.TextFieldPolice.Text
    oDialogPoliceFormules.EndExecute()
    LaFormule=ThisComponent.getCurrentSelection()
    (...)
if LaFormule.getImplementationName = "SwXTextEmbeddedObject" then

Le problème est ailleurs. En faisant un essai simplifié à l'extrême, mon dialogue s'ouvre et se ferme, et le test if marche, quel que soit l'emplacement de:
  LaFormule=ThisComponent.getCurrentSelection()
Moi, je préfèrerais la mettre en début de macro.

L'instruction
  oDialogPoliceFormules.EndExecute()
n'a pas à être employée ici. La remplacer par
  oDialogPoliceFormules.Dispose

   Bernard


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

Répondre à