[Résolu] [Base] Gestionnaires d'événements
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 !
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 !
-
- Membre OOrganisé
- Messages : 70
- Inscription : 08 avr. 2022 15:02
[Résolu] [Base] Gestionnaires d'événements
Bonjour,
En lisant https://help.libreoffice.org/latest/fr/ ... ASIC#N0664, j'ai l'impression qu'il existe un moyen de capter les événements directement au niveau du script par la mise en place d'exceptions.
Nota: J'ai rien comprise à l'article et les exemples mais ce qui laisse croire que c'est possible, c'est la présence de la phrase suivante dans l'article "Comme prévu, la méthode manquante onOkHasFocus lève une exception."
Si vous avez une idée sur la manière de faire et un exemple pour illustrer comment capter un événement directement au niveau du script sans avoir besoin de le définir au niveau du formulaire ce serait sympa de nous en faire profiter.
Merci d'avance.
En lisant https://help.libreoffice.org/latest/fr/ ... ASIC#N0664, j'ai l'impression qu'il existe un moyen de capter les événements directement au niveau du script par la mise en place d'exceptions.
Nota: J'ai rien comprise à l'article et les exemples mais ce qui laisse croire que c'est possible, c'est la présence de la phrase suivante dans l'article "Comme prévu, la méthode manquante onOkHasFocus lève une exception."
Si vous avez une idée sur la manière de faire et un exemple pour illustrer comment capter un événement directement au niveau du script sans avoir besoin de le définir au niveau du formulaire ce serait sympa de nous en faire profiter.
Merci d'avance.
Dernière modification par Robert92500 le 25 juin 2022 15:21, modifié 1 fois.
LibreOffice 7.3.5.2 / OS MAC 12.5 puce M1/ Java Temuruin 1.8.0_332
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Gestionnaires d'événements
Salut,
Explique nous dans quel cas tu as besoin d'utiliser ces évènements et à quel niveau.
Problème XYRobert92500 a écrit : ↑08 juin 2022 10:11 j'ai l'impression qu'il existe un moyen de capter les événements directement au niveau du script par la mise en place d'exceptions
Explique nous dans quel cas tu as besoin d'utiliser ces évènements et à quel niveau.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
- Membre OOrganisé
- Messages : 70
- Inscription : 08 avr. 2022 15:02
Re: [Base] Gestionnaires d'événements
Bonjour,
S'il est possible de capter les événements, il ne sera peut-être pas utile de déclarer les événements au niveau des formulaires et des contrôles.
tout sera visible dans le code.
S'il est possible de capter les événements, il ne sera peut-être pas utile de déclarer les événements au niveau des formulaires et des contrôles.
tout sera visible dans le code.
LibreOffice 7.3.5.2 / OS MAC 12.5 puce M1/ Java Temuruin 1.8.0_332
-
- SuppOOrter
- Messages : 1398
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Gestionnaires d'événements
Bonjour,
Cet article est visiblement traduit du germano-anglais par quelqu'un qui n'y comprend pas grand chose (Comme moi, par exemple...). Il se réfère à une boîte de dialogue de la bibliothèque Access2Base qui n'est pas décrite ici.
Le code mériterait d'être désossé et analysé pour mieux l'appréhender, et il nécessite une (très) bonne connaissance de l'API.
En gros, il faudrait le réécrire et le documenter pas à pas.
J'avais signalé le problème sur quelques articles de l'aide qui n'aident pas vraiment.
Pour travailler là-dessus il faut bien comprendre la gestion des Listeners (auditeurs) .
Et ne pas craindre de perdre du temps. Utiliser les événements est moins centralisé, mais beaucoup plus rapide.
Ensuite, tout est un problème de documentation pour le suivi et la maintenance.
Cordialement,
Cet article est visiblement traduit du germano-anglais par quelqu'un qui n'y comprend pas grand chose (Comme moi, par exemple...). Il se réfère à une boîte de dialogue de la bibliothèque Access2Base qui n'est pas décrite ici.
Le code mériterait d'être désossé et analysé pour mieux l'appréhender, et il nécessite une (très) bonne connaissance de l'API.
En gros, il faudrait le réécrire et le documenter pas à pas.
J'avais signalé le problème sur quelques articles de l'aide qui n'aident pas vraiment.
Pour travailler là-dessus il faut bien comprendre la gestion des Listeners (auditeurs) .
Et ne pas craindre de perdre du temps. Utiliser les événements est moins centralisé, mais beaucoup plus rapide.
Ensuite, tout est un problème de documentation pour le suivi et la maintenance.
Cordialement,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Gestionnaires d'événements
Ce n'est pas une bibliothèque mais une extension pour faciliter la transition depuis MS-Access.
Elle a simplement été embarquée dans LibreOffice.
Je ne comprends pas. Tu dois brancher de toute façon l'événement sur une macro.
Explique toi mieux avec un exemple concret.
-
- Membre OOrganisé
- Messages : 70
- Inscription : 08 avr. 2022 15:02
Re: [Base] Gestionnaires d'événements
Bonjour,
J'ai ouvert le sujet pour voir s'il y a un interêt à utiliser des déclencheurs pour tout regrouper dans une libraire.
Mon objectif en ouvrant le sujet était de voir si on pouvant faire plus simple que je processus actuel:
- pour trouver quels sont les événements avec macro , il faut ouvrir tous les contrôles un par un.
- coté développement, pleins de clics pour trouver la macro à affecter à l'événement,
- copier coller impossible dans de la processus d'affectation des macros du contrôle ou formulaire, etc
- impossible d'appeler les macros avec des paramètres ce qui oblige la création d'une macro qui appelle une macro paramètrable (si on veut faire du code non redondant)
imaginons un formulaire avec plusieurs contrôles de même type, par exemple liste1, liste2, etc... Si on veut capter l'événement "changement de valeur" on doit créer la macro pour chaque contrôle et ensuite aller dans le formulaire et affecter la macro à l'événement voulu.
Dans la libraire du formulaire on trouvera quelque chose du genre :
imaginons qu'il existe la possibilité de déclarer des déclencheurs plus besoin de déclarer l'appel de l'événement au niveau du contrôle.
La consultation de la libraire permettra de voir tout de suite qu'il y a deux événements à traiter
Le code pourrait ressembler à ça
J'ai ouvert le sujet pour voir s'il y a un interêt à utiliser des déclencheurs pour tout regrouper dans une libraire.
Mon objectif en ouvrant le sujet était de voir si on pouvant faire plus simple que je processus actuel:
- pour trouver quels sont les événements avec macro , il faut ouvrir tous les contrôles un par un.
- coté développement, pleins de clics pour trouver la macro à affecter à l'événement,
- copier coller impossible dans de la processus d'affectation des macros du contrôle ou formulaire, etc
- impossible d'appeler les macros avec des paramètres ce qui oblige la création d'une macro qui appelle une macro paramètrable (si on veut faire du code non redondant)
imaginons un formulaire avec plusieurs contrôles de même type, par exemple liste1, liste2, etc... Si on veut capter l'événement "changement de valeur" on doit créer la macro pour chaque contrôle et ensuite aller dans le formulaire et affecter la macro à l'événement voulu.
Dans la libraire du formulaire on trouvera quelque chose du genre :
Code : Tout sélectionner
sub ChangementValeurListe1(event)
ChangementValeurList(event,"nomListe")
end sub
sub ChangementValeurListe2(event)
ChangementValeurList(event,"nomListe")
end sub
sub ChangementValeurListe2(event, nonListe as string)
....
end sub
------
La consultation de la libraire permettra de voir tout de suite qu'il y a deux événements à traiter
Le code pourrait ressembler à ça
Code : Tout sélectionner
sub declencheurMagique()
si event = modif liste1 alors appelle ChangementValeurListe2(event, nonListe)
si event = modif liste1 alors appelle ChangementValeurListe2(event, nonListe)
end sub
sub ChangementValeurListe2(event, nonListe as string)
.... ici le code dédié aux événements des listes ....
end sub
Dernière modification par Don Corleone le 23 juin 2022 12:24, modifié 1 fois.
Raison : Utilisez les balises [code][/code] pour l'encadrer et faciliter la lecture. Merci.
Raison : Utilisez les balises [code][/code] pour l'encadrer et faciliter la lecture. Merci.
LibreOffice 7.3.5.2 / OS MAC 12.5 puce M1/ Java Temuruin 1.8.0_332
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Gestionnaires d'événements
Tu devrais te servir de XRay.Robert92500 a écrit : ↑23 juin 2022 12:11 on doit créer la macro pour chaque contrôle et ensuite aller dans le formulaire et affecter la macro à l'événement voulu
Tu verrais qu'il suffit d'interroger ton objet event pour voir qu'avec les propriétés source.model.name, on récupère le nom du contrôle "zone de liste".
-
- InconditiOOnnel
- Messages : 839
- Inscription : 10 janv. 2009 08:05
Re: [Base] Gestionnaires d'événements
Bonjour,
tu peux aussi consulter ce fil:https://forum.openoffice.org/fr/forum/v ... hp?t=57773 où tout cela est expliqué.
A plus.
tu peux aussi consulter ce fil:https://forum.openoffice.org/fr/forum/v ... hp?t=57773 où tout cela est expliqué.
A plus.
A jour de LibreOffice et de Ubuntu
-
- Membre OOrganisé
- Messages : 70
- Inscription : 08 avr. 2022 15:02
Re: [Base] Gestionnaires d'événements
Merci à vous deux
Je vais regarder ça avec attention.
c'était vraiment un problème dans base, on ne peux pas faire comme dans calc. impossible de voir les propriétés et les méthodes des objets qu'on veut utiliser quand on code.
Je vais regarder ça avec attention.
c'était vraiment un problème dans base, on ne peux pas faire comme dans calc. impossible de voir les propriétés et les méthodes des objets qu'on veut utiliser quand on code.
LibreOffice 7.3.5.2 / OS MAC 12.5 puce M1/ Java Temuruin 1.8.0_332
-
- Membre lOOyal
- Messages : 40
- Inscription : 03 janv. 2017 13:54
Re: [Base] Gestionnaires d'événements
Bonjour,
Pour information : Il est de possible de télécharger les fichiers exemples pour LibreOffice de la page d'aide citée plus haut.
La référence à la Gestion d'évènements de dialogue mentionnée ci-dessus est l'approche à privilégier dans le cas précis de cette question.
Pour information : Il est de possible de télécharger les fichiers exemples pour LibreOffice de la page d'aide citée plus haut.
La référence à la Gestion d'évènements de dialogue mentionnée ci-dessus est l'approche à privilégier dans le cas précis de cette question.
jeanmi2403 a écrit : ↑22 juin 2022 14:04 Bonjour,
Cet article est visiblement traduit du germano-anglais par quelqu'un qui n'y comprend pas grand chose (Comme moi, par exemple...). Il se réfère à une boîte de dialogue de la bibliothèque Access2Base qui n'est pas décrite ici.
Le code mériterait d'être désossé et analysé pour mieux l'appréhender, et il nécessite une (très) bonne connaissance de l'API.
En gros, il faudrait le réécrire et le documenter pas à pas.
J'avais signalé le problème sur quelques articles de l'aide qui n'aident pas vraiment.
Pour travailler là-dessus il faut bien comprendre la gestion des Listeners (auditeurs) .
Et ne pas craindre de perdre du temps. Utiliser les événements est moins centralisé, mais beaucoup plus rapide.
Ensuite, tout est un problème de documentation pour le suivi et la maintenance.
Cordialement,
libO 5.4 64bit, (PortableApps: libO 6.0, aOO 4.1, OOo 3.2 32bit) sur Win7/Win10 x64 | aOO 4.1.x et libO 5.4.x sur Mint 18 Sarah et OSX 10.9 Mavericks x64
Boîte à Outils Python: Geany, PyCharm et bien sûr APSO, MRI..
https://wiki.documentfoundation.org/Mac ... n_Guide/fr
Boîte à Outils Python: Geany, PyCharm et bien sûr APSO, MRI..
https://wiki.documentfoundation.org/Mac ... n_Guide/fr
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Gestionnaires d'événements
L'éditeur Basic est identique dans tous les modules.Robert92500 a écrit : ↑23 juin 2022 15:00 c'était vraiment un problème dans base, on ne peux pas faire comme dans calc. impossible de voir les propriétés et les méthodes des objets qu'on veut utiliser quand on code.
Peux-tu nous faire une copie écran de Calc où tu vois cette différence ?
-
- Membre OOrganisé
- Messages : 70
- Inscription : 08 avr. 2022 15:02
Re: [Base] Gestionnaires d'événements
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 24 juin 2022 06:54, modifié 1 fois.
Raison : Réduction de la citation
Raison : Réduction de la citation
LibreOffice 7.3.5.2 / OS MAC 12.5 puce M1/ Java Temuruin 1.8.0_332
-
- SuppOOrter
- Messages : 1398
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Gestionnaires d'événements
Bonjour.
L'écran Développeur n'est pas disponible dans Base.
Je trouve qu'il affiche trop d'informations parasites.
Je préfère utiliser Xray, son affichage me semble plus clair, question d'habitude.
Bonne journée.
L'écran Développeur n'est pas disponible dans Base.
Je trouve qu'il affiche trop d'informations parasites.
Je préfère utiliser Xray, son affichage me semble plus clair, question d'habitude.
Bonne journée.
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
-
- Membre OOrganisé
- Messages : 70
- Inscription : 08 avr. 2022 15:02
Re: [Base] Gestionnaires d'événements
Bonjour Jean Michel,jeanmi2403 a écrit : ↑24 juin 2022 10:10 Je préfère utiliser Xray, son affichage me semble plus clair, question d'habitude.
J'aimerai bien pouvoir faire fonctionner Xray sur mon Mac mais c'est un autre sujet:
https://forum.openoffice.org/fr/forum/v ... ead#unread
LibreOffice 7.3.5.2 / OS MAC 12.5 puce M1/ Java Temuruin 1.8.0_332
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Gestionnaires d'événements
Dans tous les cas, la réponse est de récupérer l'évènement et d'en faire l'introspection via XRay.
Merci d'ajouter [Résolu].