Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
C'est une question de politesse pour les gens qui vous ont répondu et consacré bénévolement de leur temps. Notre forum est plus lisible avec ce balisage comme vous avez pu vous en rendre compte en le parcourant.
Merci de votre collaboration
Bonjour,
J'aimerais pouvoir activer ou désactiver par programme (et non par l'interface graphique) un script lancé sur un évènement d'un formulaire ou d'un contrôle.
L'en-tête de la routine pourrait ressembler à cela :
Sub controleDemon(source as Object, evt as String, activer as Boolean)
où source serait l'objet portant l'évènement (formulaire ou contrôle), evt un code désignant l'évènement (du genre "onLoad"), et activer indiquerait si l'on veut activer ou désactiver le lancement de la routine associée lorsque l'évènement survient.
Quelqu'un peut-il m'indiquer une piste à explorer, un fragment de tuto, voire un exemple proche ?
Merci.
Dernière modification par Don Corleone le 31 oct. 2010 08:48, modifié 1 fois.
Activer/désactiver sans supprimer je n'ai jamais fait... ni cherché
Ci-joint un exemple de manipulation produisant le même résultat : ajout/suppression du script associé à l'événement Exécuter l'action du bouton nommé "Test2"
const PysNomCtrl = "Test2"
sub PysSupprimerAction
dim PysForm as object
dim PysElementNames as object
dim PysIndex as long
' Chargement de la bibliotheque Tools car utilisation de la fonctions IndexinArray
GlobalScope.BasicLibraries.LoadLibrary("Tools")
PysForm = thiscomponent.sheets.getByName("Feuille1").drawPage.forms.getByName("Navigation")
PysElementNames = PysForm.ElementNames
PysIndex = IndexinArray(PysNomCtrl, PysElementNames)
PysForm.revokeScriptEvent ( PysIndex , "XActionListener", "actionPerformed", "" )
end sub
Sub PysAjouterAction
dim PysForm as object
dim PysElementNames as object
dim PysEvent as new com.sun.star.script.ScriptEventDescriptor
dim PysIndex as long
' Chargement de la bibliotheque Tools car utilisation de la fonction IndexinArray
GlobalScope.BasicLibraries.LoadLibrary("Tools")
PysForm = thiscomponent.sheets.getByName("Feuille1").drawPage.forms.getByName("Navigation")
PysElementNames = PysForm.ElementNames
PysIndex = IndexinArray(PysNomCtrl, PysElementNames)
PysEvent.ListenerType = "com.sun.star.awt.XActionListener"
PysEvent.EventMethod = "actionPerformed"
PysEvent.ScriptType = "StarBasic"
PysEvent.ScriptCode = "document:Standard.Module1.PysTestDeux"
PysForm.registerScriptEvent(PysIndex, PysEvent)
End Sub
Sub PysTest
print "ok"
end sub
Sub PysTestDeux
print "okDeux"
end sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.