Bonjour,

Le plus simple est d'utiliser le service com.sun.star.frame.DispatchHelper pour 
executer la commande du menu Edition>Objet>Editer :

sub insereTexte

        dim doc as object
        dim obj as object
        dim aPos as variant
        dim aSize as variant
        dim controller as object
        dim dispatcher as object
        dim args1(0) as new com.sun.star.beans.PropertyValue
        
        doc = thisComponent
        obj = doc.CreateInstance("com.sun.star.drawing.OLE2Shape")
        ...
        controller = doc.currentController
        if (not isNull(controller)) then
                if (controller.select(obj)) then
                        dispatcher = 
createUnoService("com.sun.star.frame.DispatchHelper")
                        args1(0).Name = "VerbID"
                        args1(0).Value = 65535
                        dispatcher.executeDispatch(controller.frame, 
".uno:ObjectMenue", "", 0, args1())
                end if
        end if

end sub

Cordialement,
T. Vataire

----- Mail Original -----
De: "Didier Dorange-Pattoret" <ddora...@dmaths.org>
À: prog@fr.openoffice.org
Envoyé: Samedi 15 Mai 2010 16:40:37
Objet: Re: [prog] Insérer un document writer dans Impress

Bonjour Thibault,

Merci pour votre réponse.

Je cherche en fait à faire ouvrir une fenêtre writer dans un document
impress pour pouvoir utiliser les fonctionnalités de Dmaths et donc
insérer  "facilement" des formules dans la présentation.

J'écris donc comme dernières lignes :

obj.EmbeddedObject.Component.Text.String= ""
ThisComponent.CurrentController.Select(obj) 

Pour que l'objet inséré soit sélectionné et donc éditable par double-clic.

Est-il possible d'écrire du code qui équivaut à ce double clic,  pour
que l'objet soit mis directement en mode édition ?

Merci d'avance.

Thibault Vataire a écrit :
> Bonjour,
>
> Le problème de votre exemple vient de la manière dont vous modifiez les 
> valeurs de positions et de taille.
> Voici comment procéder pour que cela fonctionne :
>
> sub insereTexte
>
>       dim obj as object
>       dim aPos as variant
>       dim aSize as variant
>
>       obj = ThisComponent.CreateInstance("com.sun.star.drawing.OLE2Shape")
>
>       aPos = obj.position
>       aPos.x = 2000
>       aPos.y = 2000
>       obj.position = aPos
>
>       aSize = obj.size
>       aSize.height = 2000
>       aSize.width = 2000
>       obj.size = aSize
>
>       obj.CLSID = "8BC6B165-B1B2-4EDD-aa47-dae2ee689dd6"
>       obj.name = "WriterObj"
>       thisComponent.drawpages(0).add(obj)
>       obj.EmbeddedObject.Component.Text.String= "C'est dur linfo"
>       
> end sub
>
> Cordialement.
> T. Vataire
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
> For additional commands, e-mail: prog-h...@fr.openoffice.org
>
>
>   

-- 
Didier Dorange-Pattoret

http://www.dmaths.org
http://sesamath.net

Soutenez le projet Dmaths : rejoignez le club ou faites adhérer votre 
établissement !
http://www.dmaths.org/documentation/doku.php?id=presentation:club



---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à