[Basic] Gestion d'evenements dans un pseudo objet ?

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: 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 !

[Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar gelinp » 19 Mars 2019 06:36

Bonjour,

Il semblerait qu'en programmation (pseudo) objet il ne soit pas possible d'implémenter un controleur d'évenements... j'ai pourtant gardé en mémoire un exemple de code qui semblait montrer le contraire... Mais je ne le retrouve malheureusement pas...

Est ce que quelqu'un a une id'e sur le sujet ? peut etre n'est il pas possible de d'associer un évenement déclaré dans un gestionnaire de l'interface graphique mais qu'il serait tout de meme possible de le faire programmatiquement ... Ce serait tellement plus simple de pouvoir associer un controleur d'évenements a une méthode d'un pseudo objet ... Quelle est la ligne de route dans le développement de OOo Basic ou non éventuel replacement par python ? Est ge qu'avec Python il est déja possible d'associer un évenement OOo avec un objet ?

Merci par avance pour votre aide ...
Patrick


La modération a écrit:Merci de ne pas inventer et de respecter la syntaxe des balises : viewtopic.php?f=1&t=1]les règles de ce forum.openoffice.org/fr/forum/ftopic1369.html
Le balisage doit bien sûr être correctement orthographié (première lettre en majuscule puis le reste en minuscules).
LibreOffice Version 6.0.6.2 - Linux Mint tara - 64 bits
gelinp
Membre lOOyal
Membre lOOyal
 
Message(s) : 42
Inscrit le : 12 Mars 2011 21:40

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar Hubert Lambert » 19 Mars 2019 21:38

Bonjour,

À part oobasic, tous les langages supportés par AOO/LibO permettent d'implémenter les objets UNO, en particulier python.
Mais ta question n'est pas très claire : qu'entends-tu par "contrôleur d'événements" exactement ? S'agit-il de ceci : https://wiki.openoffice.org/wiki/FR/Doc ... th_Handler ? Un exemple concret serait le bienvenu...
Cordialement.
AOOo 4.1.2 sur Win7
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
 
Message(s) : 1147
Inscrit le : 06 Avr 2016 08:26

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar gelinp » 14 Mai 2019 15:08

Ce que j'entends par controleur d'évènement c'est ce que OOo semble appeler un Listener. C'est à dire que la question porte sur un moyen pour traiter les actions déclenchées (par un controle dans une interface boite de dialogue ou Formulaire) en le réceptionnant dans une méthode d'un pseudo object, et non d'un module procédurale classique, puisque le module dans lequel est programmé un pseudo object ne semble pas utilisable avec l'appel CreateUnoListener(...).

Par exemple si j'affecte une macro à la procédure ci-dessous :
REM ***** BASIC *****
Sub ApresChangementEnregistrement(event As Object) ... End Sub

Je voudrais l'affecter à une méthode pseudo object ...:
REM ***** BASIC *****
Option Compatible
Option ClassModule
Public Sub ApresChangementEnregistrement(event As Object) ... End Sub

Mais ni le gestionnaire de macro ni l'appel à CreateUnoListener()ne semble capable d'établir un tel lien ...

Merci pour votre éclairage à ce sujet ...
LibreOffice Version 6.0.6.2 - Linux Mint tara - 64 bits
gelinp
Membre lOOyal
Membre lOOyal
 
Message(s) : 42
Inscrit le : 12 Mars 2011 21:40

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar Hubert Lambert » 15 Mai 2019 13:42

Je n'ai malheureusement aucune idée, n'ayant jamais pratiqué la chose.
Mais faut-il vraiment s'étonner d'aboutir à une impasse en recourant à une utilisation non native de basic, via une option de compatibilité VBA réputée inaboutie (https://help.libreoffice.org/6.2/fr/tex ... pport.html) ?
AOOo 4.1.2 sur Win7
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
 
Message(s) : 1147
Inscrit le : 06 Avr 2016 08:26

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar gelinp » 08 Août 2019 09:15

Je comprends que les pseudos objets sous Basic OOo sont présentés comme des modules fonctionnels analogues aux modules du langage C, c'est à dire permettant l'encapsulation des variables déclarées privées dans le module. L'encapsulation est un pilier de la programmation actionnelle, c'est essentiel, même en programmation non objet. Cela répond à une grande partie des types d'usage courants.

Un module ce doit donc de proposer l'encapsulation, c'est sa raison d'être mais ce n'est pas le cas des modules Basic sous OOo... Le seul moyen de simuler un module dans OOo consiste donc à veiller soi même aux règles de nommage pour qu'aucune variable même déclarée privée dans un module n'est le même nom qu'une autre variable privée d'un autre module (à vérifier mais il me semble me souvenir avoir déjà rencontré des problèmes de recouvrement d'instances même avec des variables déclarées dans d'autres librairies que la mienne)... Lorsque le code devient conséquent c'est vraiment problématique ...

Et utiliser Python ou Java en code externe pour accéder à la couche Uno (pour laquelle je ne trouve encore aucune doc) pose d'autres problèmes ...
LibreOffice Version 6.0.6.2 - Linux Mint tara - 64 bits
gelinp
Membre lOOyal
Membre lOOyal
 
Message(s) : 42
Inscrit le : 12 Mars 2011 21:40

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar Hubert Lambert » 09 Août 2019 08:37

Gelinp a écrit:Et utiliser Python ou Java en code externe pour accéder à la couche Uno (pour laquelle je ne trouve encore aucune doc) pose d'autres problèmes ...

Que tu utilises basic, python, javascript ou que sais-je, dans tout les cas tu dialogueras de la même manière avec la couche UNO, dont le but est justement de proposer une interface universelle et neutre par rapport aux langages de programmation.
Ensuite, python s'emploie de préférence en "interne", exactement comme basic, avec évidemment quelques nuances (presque tout est décrit ici). Mais python offre surtout un langage plus moderne, solide et souple que basic, et résoudra quasi "naturellement" tes problèmes de capsules.
AOOo 4.1.2 sur Win7
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
 
Message(s) : 1147
Inscrit le : 06 Avr 2016 08:26

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar LibreOfficiant » 16 Août 2019 10:15

Bonjour Gelinp,

L'exemple Suivi des événements de documents de l'aide LibreOffice semble couvrir ton besoin de pseudo-objet. L'exemple, non encore traduit, Creating a Dialog Handler s'en approche également sans être vraiment un objet de classe.
Je ne connais pas d'approche équivalente quant à gestion des formulaires.

Les exemples Python associés illustrent les dires d'Hubert sur ce langage.

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/Macros/Python_Design_Guide/fr
Avatar de l’utilisateur
LibreOfficiant
Membre lOOyal
Membre lOOyal
 
Message(s) : 39
Inscrit le : 03 Jan 2017 14:54

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar Hubert Lambert » 16 Août 2019 15:30

LibreOfficiant a écrit:L'exemple, non encore traduit, Creating a Dialog Handler...

Pourtant : viewtopic.php?p=311989#p311989.
AOOo 4.1.2 sur Win7
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
 
Message(s) : 1147
Inscrit le : 06 Avr 2016 08:26

Re: [Basic] Gestion d'evenements dans un pseudo objet ?

Messagepar LibreOfficiant » 16 Août 2019 16:33

Hubert Lambert a écrit:
LibreOfficiant a écrit:L'exemple, non encore traduit, Creating a Dialog Handler...

Pourtant : viewtopic.php?p=311989#p311989.

.. non encore traduit dans l'aide de LibreOffice .. eussé-je du écrire pour être tout à fait clair.
Merci pour cette précision
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/Macros/Python_Design_Guide/fr
Avatar de l’utilisateur
LibreOfficiant
Membre lOOyal
Membre lOOyal
 
Message(s) : 39
Inscrit le : 03 Jan 2017 14:54


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 6 invité(s)