[Résolu][Calc] Dialogues non modaux en chaîne figent calc
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 !
-
- NOOuvel adepte
- Messages : 17
- Inscription : 06 janv. 2010 17:53
- Localisation : Ardennes
[Résolu][Calc] Dialogues non modaux en chaîne figent calc
Bonjour,
Dans un classeur très (très) sécurisé, j'ai retiré toutes les barres d'outils et créé une boite de dialogue BASIC non-modale permettant d'effectuer les actions autorisées.
(Merci au passage aux contributeurs qui m'ont permis de trouver et appliquer cette méthode )
Le blocage (gel de LibreOffice avec obligation de forcer la fermeture pour stopper le symptôme) intervient quand je lance une seconde boite de dialogue non-modale à partir de la première.
A noter que lorsque je lance une boite de dialogue modale à partir de la non-modale, tout se passe bien.
J'avais pris comme modèle l'exemple donné en toute fin de ce fil : https://forum.openoffice.org/fr/forum/v ... 99#p254292
Il se trouve que le symptôme est strictement le même sur mon fichier que sur le fichier donné en exemple. Je joints donc ce dernier.
J'ai deux hypothèses :
- 1- les listeners des deux boîtes sont en conflit et prennent toutes les ressources.
- 2- Une cascade de dialogues non-modaux est incompatible avec la version de LibreOfffice utilisée (le lien initial date de 3 ans).
Dans les deux cas, je sèche ...
Merci d'avance pour votre aide et vos pistes.
Dans un classeur très (très) sécurisé, j'ai retiré toutes les barres d'outils et créé une boite de dialogue BASIC non-modale permettant d'effectuer les actions autorisées.
(Merci au passage aux contributeurs qui m'ont permis de trouver et appliquer cette méthode )
Le blocage (gel de LibreOffice avec obligation de forcer la fermeture pour stopper le symptôme) intervient quand je lance une seconde boite de dialogue non-modale à partir de la première.
A noter que lorsque je lance une boite de dialogue modale à partir de la non-modale, tout se passe bien.
J'avais pris comme modèle l'exemple donné en toute fin de ce fil : https://forum.openoffice.org/fr/forum/v ... 99#p254292
Il se trouve que le symptôme est strictement le même sur mon fichier que sur le fichier donné en exemple. Je joints donc ce dernier.
J'ai deux hypothèses :
- 1- les listeners des deux boîtes sont en conflit et prennent toutes les ressources.
- 2- Une cascade de dialogues non-modaux est incompatible avec la version de LibreOfffice utilisée (le lien initial date de 3 ans).
Dans les deux cas, je sèche ...
Merci d'avance pour votre aide et vos pistes.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par marhra le 02 janv. 2020 14:30, modifié 1 fois.
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
LibreOffice 6.3.0 sur MacOS Mojave à la maison
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Salut,
Je n'ai pas de problème notable sur le classeur en question.
Un peu de lenteur mais c'est normal puisqu'on lance un second dialogue non modal. Test réalisé sous AOO 4.1.6 et Windows 7 x64 Pro
Pourquoi ne pas créer ta propre barre d'outils ou mieux, utiliser la barre latérale ?
Je n'ai pas de problème notable sur le classeur en question.
Un peu de lenteur mais c'est normal puisqu'on lance un second dialogue non modal. Test réalisé sous AOO 4.1.6 et Windows 7 x64 Pro
Mauvaise idée, un dialogue n'est pas fait pour interagir avec l'application ou alors de manière très limitée.marhra a écrit : j'ai retiré toutes les barres d'outils et créé une boite de dialogue BASIC non-modale permettant d'effectuer les actions autorisées.
Pourquoi ne pas créer ta propre barre d'outils ou mieux, utiliser la barre latérale ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- NOOuvel adepte
- Messages : 17
- Inscription : 06 janv. 2010 17:53
- Localisation : Ardennes
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Bonjour,
Merci de t'être penché sur mon problème,
Effectivement, de la lenteur...
Le second dialogue finit par s'ouvrir, mais avec un temps d'attente variant d'une trentaine de secondes à .... (pas eu la patience d'attendre plus de 15 mn...) mais cela pourrait (devrait) faire l'objet d'un autre fil.
Il y aurait aussi éventuellement le passage par un formulaire séparé, mais je ne suis pas convaincu par ce dernier...
En attendant, j'ai réussi à concocter un dialogue non-modal fonctionnel, avec ce que les utilisateurs peuvent faire (naviguer d'une feuille à l'autre, imprimer, verrouiller/déverrouiller la modification des données saisies, avec en plus un mode avancé, qui permet de modifier le <Titre> du document, protéger/déprotéger les feuilles, modifier des mots de passe, etc...) le tout soit par bouton direct, soit en lançant des dialogues (normaux, eux). Il me manquait juste un second dialogue non modal contenant des boutons déclenchant des filtres prédéfinis.
Le but étant de fournir un outil fonctionnel, le temps de passer à la v.4.1. sans dialogue non-modal. Ce qui risque de prendre un peu de temps, vu que j'apprends au fur et à mesure que je fabrique mon code.
Le plus simple pour moi serait peut-être de modifier mon dialogue non-modal initial (qui fait ce que j'attends de lui sans rien bloquer), pour qu'il affiche une taille plus grande et fasse apparaître les boutons des filtres en question...
Je propose donc de clôturer ce fil en conseillant de NE PAS utiliser de dialogues non-modaux en cascade... Mais je ne sais pas si le [Résolu] est adapté...
Sans vouloir abuser, dans quelle direction je pourrais orienter ma lampe torche pour cette histoire de barre latérale ? Toujours via macros, ou par un genre de plug-in ? Autre ?
Merci de t'être penché sur mon problème,
Effectivement, de la lenteur...
Le second dialogue finit par s'ouvrir, mais avec un temps d'attente variant d'une trentaine de secondes à .... (pas eu la patience d'attendre plus de 15 mn...)
Ma propre barre d'outils ou la barre latérale serait assez intéressante, en effet, et je compte bien travailler là-dessus. J'ai un peu regardé pour la barre d'outils, mais il semblerait qu'il y ait une difficulté avec la méthode brutale employée pour masquer les barres d'outils existantes... A voir avec la barre latérale, si elle n'est pas gérée de la même manière, ce qui m'étonnerait.Mauvaise idée, un dialogue n'est pas fait pour interagir avec l'application ou alors de manière très limitée.marhra a écrit:
j'ai retiré toutes les barres d'outils et créé une boite de dialogue BASIC non-modale permettant d'effectuer les actions autorisées.
Pourquoi ne pas créer ta propre barre d'outils ou mieux, utiliser la barre latérale ?
Code : Tout sélectionner
ThisComponent.CurrentController.Frame.LayoutManager.setVisible(False)
Il y aurait aussi éventuellement le passage par un formulaire séparé, mais je ne suis pas convaincu par ce dernier...
En attendant, j'ai réussi à concocter un dialogue non-modal fonctionnel, avec ce que les utilisateurs peuvent faire (naviguer d'une feuille à l'autre, imprimer, verrouiller/déverrouiller la modification des données saisies, avec en plus un mode avancé, qui permet de modifier le <Titre> du document, protéger/déprotéger les feuilles, modifier des mots de passe, etc...) le tout soit par bouton direct, soit en lançant des dialogues (normaux, eux). Il me manquait juste un second dialogue non modal contenant des boutons déclenchant des filtres prédéfinis.
Le but étant de fournir un outil fonctionnel, le temps de passer à la v.4.1. sans dialogue non-modal. Ce qui risque de prendre un peu de temps, vu que j'apprends au fur et à mesure que je fabrique mon code.
Le plus simple pour moi serait peut-être de modifier mon dialogue non-modal initial (qui fait ce que j'attends de lui sans rien bloquer), pour qu'il affiche une taille plus grande et fasse apparaître les boutons des filtres en question...
Je propose donc de clôturer ce fil en conseillant de NE PAS utiliser de dialogues non-modaux en cascade... Mais je ne sais pas si le [Résolu] est adapté...
Sans vouloir abuser, dans quelle direction je pourrais orienter ma lampe torche pour cette histoire de barre latérale ? Toujours via macros, ou par un genre de plug-in ? Autre ?
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
LibreOffice 6.3.0 sur MacOS Mojave à la maison
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Bonjour,
en regard de page (pas) idem pour les contrôles lorsqu'ils sont sélectionnés : Lorsque que le Step (pas) du dialogue est identique à celui des contrôles ils deviennent visibles. Cette valeur est modifiable par Model.Step du dialogue. Sauf lorsque le Step est à zéro (valeur par défaut) car quelque soit le Step du panneau les contrôles à zéro sont toujours visible.
L'idée est de créer un dialogue avec un Step à 1 et une série de bouton avec un Spet à 1 puis une série de bouton avec un Step à 2 (superposés aux boutons ayant le Step1). Parmi les boutons de step 1, un est consacré à modifier le Step du dialogue pour le passer à 2 (Dialogue.Model.Step). Là tous les boutons de Step 1 deviennent invisibles et ceux de Step 2 prennent le relais (toujours dans la même boite de dialogue) jusqu'à modification du Step du dialogue.
Si je trouve un peu de temps dans la soirée je te ferai un petit exemple à partir de ton fichier.
A+
Tu devrais t'intéresser à la propriété Step de ton dialogue et celle de ses contrôles. Cette propriété est disponible dans le panneau de dialogue lorsque le dialogue est sélectionné par son cadre :marhra a écrit :Le plus simple pour moi serait peut-être de modifier mon dialogue non-modal initial (qui fait ce que j'attends de lui sans rien bloquer), pour qu'il affiche une taille plus grande et fasse apparaître les boutons des filtres en question...
en regard de page (pas) idem pour les contrôles lorsqu'ils sont sélectionnés : Lorsque que le Step (pas) du dialogue est identique à celui des contrôles ils deviennent visibles. Cette valeur est modifiable par Model.Step du dialogue. Sauf lorsque le Step est à zéro (valeur par défaut) car quelque soit le Step du panneau les contrôles à zéro sont toujours visible.
L'idée est de créer un dialogue avec un Step à 1 et une série de bouton avec un Spet à 1 puis une série de bouton avec un Step à 2 (superposés aux boutons ayant le Step1). Parmi les boutons de step 1, un est consacré à modifier le Step du dialogue pour le passer à 2 (Dialogue.Model.Step). Là tous les boutons de Step 1 deviennent invisibles et ceux de Step 2 prennent le relais (toujours dans la même boite de dialogue) jusqu'à modification du Step du dialogue.
Si je trouve un peu de temps dans la soirée je te ferai un petit exemple à partir de ton fichier.
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- NOOuvel adepte
- Messages : 17
- Inscription : 06 janv. 2010 17:53
- Localisation : Ardennes
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Bonsoir OOottremer 971 !
Depuis le temps que je voyais cette propriété ! Je me demandais à quoi ça pouvait bien servir !
Si je comprends bien, je peux avoir quatre ou cinq configurations différentes du même dialogue, toujours non modal, en fonction du Step affecté à chaque contrôle...
Ça me laisse rêveur quant aux possibilités ouvertes...
Bon là, il est un peu tard pour me pencher sur la chose, mais je vais voir ça de mon côté avec mon vrai fichier et je proposerai aussi un exemple un peu plus poussé.
Avec éventuellement un changement de titre du fil genre [*]Dialogue non modal multiple sans ralentissement[*]
A demain ou dans les prochains jours...
Depuis le temps que je voyais cette propriété ! Je me demandais à quoi ça pouvait bien servir !
Si je comprends bien, je peux avoir quatre ou cinq configurations différentes du même dialogue, toujours non modal, en fonction du Step affecté à chaque contrôle...
Ça me laisse rêveur quant aux possibilités ouvertes...
Bon là, il est un peu tard pour me pencher sur la chose, mais je vais voir ça de mon côté avec mon vrai fichier et je proposerai aussi un exemple un peu plus poussé.
Avec éventuellement un changement de titre du fil genre [*]Dialogue non modal multiple sans ralentissement[*]
A demain ou dans les prochains jours...
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
LibreOffice 6.3.0 sur MacOS Mojave à la maison
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc] Dialogues non modaux enchainés figent le tableur
C'est exactement cela ! Je te laisse découvrir dans le fichier joint : Pour voir les différentes pages (couches) de ton dialogue en vue de travailler dessus, tu dois le sélectionner par son cadre puis modifier manuellement son Step puis cliquer au centre du dialogue pour observer le changement (depuis l'EDI). N'oublie pas de le remettre ensuite à sa valeur initiale (1 en l'occurrence) car il s'ouvrira sur la mauvaise page.marhra a écrit :Si je comprends bien, je peux avoir quatre ou cinq configurations différentes du même dialogue, toujours non modal, en fonction du Step affecté à chaque contrôle...
Ça me laisse rêveur quant aux possibilités ouvertes...
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- NOOuvel adepte
- Messages : 17
- Inscription : 06 janv. 2010 17:53
- Localisation : Ardennes
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Bonsoir,
Merci Oootremer971 pour ces précisions et l'exemple
J'ai travaillé un peu sur mon fichier original et j'ai obtenu le résultat escompté
Je me suis aperçu en plus qu'avec SetVisible(True), on pouvait fait apparaitre dans un page du dialogue les boutons d'une autre page...
C'est pratique, ça évite d'avoir à copier et renommer trois fois des boutons qui remplissent la même fonction, alors que le menu n'as pas la même tête sur trois feuilles différentes.
Je ne souhaite pas encore clôturer le fil, le temps de poster un exemple finalisé et anonymes de mon fichier, ce qui pourrait être utile à d'autres
Ça risque de prendre un peu plus d'une semaine, le temps que je rentre de vacances...
A bientôt
Merci Oootremer971 pour ces précisions et l'exemple
J'ai travaillé un peu sur mon fichier original et j'ai obtenu le résultat escompté
Je me suis aperçu en plus qu'avec SetVisible(True), on pouvait fait apparaitre dans un page du dialogue les boutons d'une autre page...
C'est pratique, ça évite d'avoir à copier et renommer trois fois des boutons qui remplissent la même fonction, alors que le menu n'as pas la même tête sur trois feuilles différentes.
Je ne souhaite pas encore clôturer le fil, le temps de poster un exemple finalisé et anonymes de mon fichier, ce qui pourrait être utile à d'autres
Ça risque de prendre un peu plus d'une semaine, le temps que je rentre de vacances...
A bientôt
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
LibreOffice 6.3.0 sur MacOS Mojave à la maison
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Bonjour,
Comme je le disais un peu plus haut, un contrôle avec un pas à zéro est visibles sur toutes les couches (pages) du dialogue. Du coup tu fais l'économie de le rendre visible.marhra a écrit :Je me suis aperçu en plus qu'avec SetVisible(True), on pouvait fait apparaitre dans un page du dialogue les boutons d'une autre page...
C'est pratique, ça évite d'avoir à copier et renommer trois fois des boutons qui remplissent la même fonction,
A+OOotremer971 a écrit :Lorsque que le Step (pas) du dialogue est identique à celui des contrôles ils deviennent visibles. Cette valeur est modifiable par Model.Step du dialogue. Sauf lorsque le Step est à zéro (valeur par défaut) car quelque soit le Step du panneau les contrôles à zéro sont toujours visibles.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
AOO
LibreOffice
Debian 10 et 11
-
- NOOuvel adepte
- Messages : 17
- Inscription : 06 janv. 2010 17:53
- Localisation : Ardennes
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Oui, du coup, j’ai bien des boutons qui sont à 0 (Quitter), mais j’avais aussi besoin que quelques autres du Step1 soient visibles aux Steps 2, 3 et 4, mais pas aux Steps 5 et 6...
Mon projet était ambitieux au départ : un menu non- modal visible en permanence sur une fenêtre sans aucune barre d’outils, qui permet de faire les opérations autorisées :
- aller d’une feuille à l’autre ;
- imprimer la feuille active ;
- fixer- défixer les colonnes de certaines pages, en choisissant les colonnes ;
- protéger- déprotéger les cellules remplies, parfois avec un MDP, sur certaines feuilles ;
- effacer le contenu de certaines cellules sur certaines feuilles ;
- accéder à des filtres préréglés sur une feuille et exporter le résultat en .pdf ou en .ods
- avoir un mode Concepteur, qui permet de
- protéger- déprotéger la feuille active avec MDP ;
- changer les MDP
- modifier le titre du fichier (dans les propriétés)
Passer par des boutons sur chaque feuille me bouffait la moitié de la fenêtre, d’où l’idée du menu non modal dont l’aspect change selon le mode et/ou la page actifs...
Et je me suis retrouvé avec ce souci de pouvoir disposer des boutons de navigation sur les Steps 1 à 4, mais pas sur les autres. Comme je ne voulais pas me retrouver avec 4 versions des 13 mêmes boutons, j’ai résolu le problème en rendant visibles ces boutons affectés au Step 1 sur les 3 autres, avec SetVisible.
Ma dernière nuit blanche m’a permis de rendre le tout fonctionnel à la fois sous Ununtu et MacOS ( pas encore testé Win 10 Pro...)
La solution proposée plus haut par Dude me semble au final plus adaptée, mais comme je l’ai dit, j’ai besoin de la version 4.0 avec dialogue non modal à court terme, en attendant de fabriquer la version 5.0, avec fenêtre de menu séparée, qui va me demander pas mal de temps, vu que je travaille sur cette pseudo-base sur mon temps libre.
En attendant, je posterai un fichier exemple complet d’ici une semaine.
Edité le 02/01/20 : Finalement, j'ai pas eu le temps, entre boulot et mutation en cours... Mais je ne désespère pas. Je considère le sujet comme clos et résolu.
Mon projet était ambitieux au départ : un menu non- modal visible en permanence sur une fenêtre sans aucune barre d’outils, qui permet de faire les opérations autorisées :
- aller d’une feuille à l’autre ;
- imprimer la feuille active ;
- fixer- défixer les colonnes de certaines pages, en choisissant les colonnes ;
- protéger- déprotéger les cellules remplies, parfois avec un MDP, sur certaines feuilles ;
- effacer le contenu de certaines cellules sur certaines feuilles ;
- accéder à des filtres préréglés sur une feuille et exporter le résultat en .pdf ou en .ods
- avoir un mode Concepteur, qui permet de
- protéger- déprotéger la feuille active avec MDP ;
- changer les MDP
- modifier le titre du fichier (dans les propriétés)
Passer par des boutons sur chaque feuille me bouffait la moitié de la fenêtre, d’où l’idée du menu non modal dont l’aspect change selon le mode et/ou la page actifs...
Et je me suis retrouvé avec ce souci de pouvoir disposer des boutons de navigation sur les Steps 1 à 4, mais pas sur les autres. Comme je ne voulais pas me retrouver avec 4 versions des 13 mêmes boutons, j’ai résolu le problème en rendant visibles ces boutons affectés au Step 1 sur les 3 autres, avec SetVisible.
Ma dernière nuit blanche m’a permis de rendre le tout fonctionnel à la fois sous Ununtu et MacOS ( pas encore testé Win 10 Pro...)
La solution proposée plus haut par Dude me semble au final plus adaptée, mais comme je l’ai dit, j’ai besoin de la version 4.0 avec dialogue non modal à court terme, en attendant de fabriquer la version 5.0, avec fenêtre de menu séparée, qui va me demander pas mal de temps, vu que je travaille sur cette pseudo-base sur mon temps libre.
En attendant, je posterai un fichier exemple complet d’ici une semaine.
Edité le 02/01/20 : Finalement, j'ai pas eu le temps, entre boulot et mutation en cours... Mais je ne désespère pas. Je considère le sujet comme clos et résolu.
Dernière modification par marhra le 02 janv. 2020 14:25, modifié 2 fois.
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
LibreOffice 6.3.0 sur MacOS Mojave à la maison
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
-
- NOOuvel adepte
- Messages : 17
- Inscription : 06 janv. 2010 17:53
- Localisation : Ardennes
Re: [Calc] Dialogues non modaux enchainés figent le tableur
Merci, je vais regarder ça avec une grande attention…
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
LibreOffice 6.3.0 sur MacOS Mojave à la maison