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:Martin blaizot (mar@cinesoft.fr)
Date:Feb 11, 2005 5:24:55 am
List:org.openoffice.fr.prog

Bonjour,

Malheureusement non, ça ne marche pas. Ceci dit, je vais reprendre tout mon code depuis le début et gérer ça avec une
base de donnée. Le coup du copier / coller puis modifier, n'est pas vraiment
élégant, ni très efficace. Mais bon, si quelqu'un à la solution, je suis quand même preneur, par simple
curiosité.

Merci à tous,

Martin ----- Original Message ----- From: Alain Nowak To: pr@fr.openoffice.org Sent: Friday, February 11, 2005 11:47 AM Subject: Re: [prog] accéder à un bouton depuis le code

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.

-- Alain Nowak - starxpert www.starxpert.fr

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,

Martin

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