10 messages in org.openoffice.fr.progRe: [prog] boite de dialogue qui affe...
FromSent OnAttachments
Christophe DevallandSep 26, 2005 1:17 pm 
Bernard MarcellySep 27, 2005 1:38 am 
Christophe DevallandSep 27, 2005 2:15 am 
Christophe DevallandSep 27, 2005 2:24 am 
Bernard MarcellySep 27, 2005 3:51 am 
pacSep 27, 2005 5:59 am 
Christophe DevallandSep 27, 2005 6:38 am 
pacSep 29, 2005 1:56 am 
pacSep 30, 2005 1:33 am 
Bernard MarcellySep 30, 2005 4:50 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] boite de dialogue qui affecte la selectionActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Sep 27, 2005 1:38:47 am
List:org.openoffice.fr.prog

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