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]