10 messages in org.openoffice.fr.progRe: [prog] accéder à un bouton depuis...
FromSent OnAttachments
Martin blaizotFeb 8, 2005 5:02 am 
Laurent GodardFeb 8, 2005 5:09 am 
Martin blaizotFeb 8, 2005 6:03 am 
Laurent GodardFeb 8, 2005 6:48 am 
mblaizotFeb 8, 2005 12:11 pm 
Bernard MarcellyFeb 10, 2005 2:38 am 
Martin blaizotFeb 10, 2005 6:46 am 
Alain NowakFeb 11, 2005 2:47 am 
Martin blaizotFeb 11, 2005 5:24 am 
Laurent GodardFeb 11, 2005 5:32 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] accéder à un bouton depuis le codeActions...
From:Alain Nowak (ano@starxpert.fr)
Date:Feb 11, 2005 2:47:08 am
List:org.openoffice.fr.prog

Bonjour,

Et si au lieu de fermer/ouvrir ton doc tu te contente de passer en mode conception de formulaire puis revenir en mode utilisation, est-ce que ça marche ? Si oui, tu peux ajouter cette action à ton code macro, je crois qu'il existe aussi une méthode genre "refresh" dans l'objet formulaire.

Martin blaizot a écrit :

Bonjour à tous les deux, et encore merci de vous être penché sur mon cas.

J'apporte une petite précision suite à un test simple que je viens de faire (avec le snippet ):

Je récapitule : je crée un document "devis" au moyen d'un modèle de document plein de macros; via une autre macro, j'enregistre ce document sous le nom "Facture", j'ouvre ce document facture et je fais les modifications appropriées. Le bouton "Modifier", présent dans mon document "Devis", se retrouve donc dans mon document "Facture", et je cherche à lui assigner une macro "Modif_facture". Le code "snippet" fonctionne très bien, à savoir qu'il change bien l'assignation de mon bouton "Modifier" (et seulement de celui-là) dans mon document facture (et seulement dans ce document). Par contre le bouton est inopérant. Mais, si je ferme mon document facture et que je l'ouvre à nouveau, le bouton fonctionne correctement !

J'aimerais évidemment ne pas avoir à "Fermer/ouvrir" pour avoir accès à mon bouton !

D'avance merci,

P.S. je viens de recevoir votre bouquin; je vais pouvoir occuper mes longues soirées d'hivers ! :-)

----- Original Message ----- From: "Bernard Marcelly" <marc@club-internet.fr> To: <pr@fr.openoffice.org> Sent: Thursday, February 10, 2005 11:39 AM Subject: Re: [prog] accéder à un bouton depuis le code

Bonjour, Le snippet signalé par Laurent affecte un même traitement à tous les boutons du formulaire. J'ai réussi à affecter un traitement à un bouton donné, en m'inspirant des pages 572-574 et604-605 du bouquin Programmation OpenOffice.org Au lieu du code du snippet, écrire ceci :

oDocument = StarDesktop.getCurrentComponent oView = oDocument.CurrentController oDrawPage = oView.getActiveSheet.DrawPage

' get the first form oForm = oDrawPage.getForms.getByIndex(0)

Dim modeleBouton As Object, monBouton As Object Dim ecouteur As Object

modeleBouton = oForm.getByName("Bouton1") monBouton = oView.GetControl(modeleBouton) ecouteur = CreateUnoListener("monBouton1_", "com.sun.star.awt.XActionListener") monBouton.addActionListener(ecouteur)

' ------------- gestionnaires d'évènements ---

Sub monBouton1_actionPerformed(evt As Object) MsgBox("C'est moi, le bouton !") End Sub

Sub monBouton1_disposing(evt As Object) End Sub

*******

A noter : La routine monBouton1_disposing est nécessaire même si on ne l'utilise

pas.

L’afficheur de propriétés du contrôle Bouton ne « voit » pas le traitement de l’évènement. Le traitement est désactivé à la fermeture du document. La sauvegarde du document ne permet pas de mémoriser l'affectation de traitement à l'évènement. Peut-être qu'on peut améliorer.

Bernard