[Résolu][Basic] Etat d'un bouton radio dans un dialogue

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 !
JacquesF
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 08 oct. 2012 12:40

[Résolu][Basic] Etat d'un bouton radio dans un dialogue

Message par JacquesF »

Bonjour,

J'ai une boîte de dialogue qui contient un groupe de 2 boutons radio configurés comme suit :
Nom : rbSuivi et rbBilan / Groupe : Type
Le basculement s'effectue correctement, seulement il m'est impossible de récupérer l'état correct des boutons.

Avec Xray, la propriété State de l'objet (que je prenne oDlg.getControl("rbSuivi").State ou oDlg.getControl("rbSuivi").Model.State) renvoi simplement l'état initial du bouton tel qu'il est défini dans la boîte de dialogue (Contrôle État à "Sélectionné" ==> True, à "Non sélectionné" ==> False).

En bref, quelque soit l'état actif ou non du bouton, j'ai toujours la même valeur qui est celle du dialogue initial.

J'ai bien un contournement possible qui est de faire une macro qui positionnerait une valeur dans un champ caché dans la boîte sur action du bouton en récupérant le nom du contrôle à l'origine de l'appel, mais c'est un workaround, pas un code correct.

Est-ce que j'ai loupé quelque chose, ou est-ce un bug ?
Rien trouvé de probant sur le forum sur ce point, et les autres exemples sur google font référence à State ce qui semble normal.

Merci de vos lumières.
Jacques
Dernière modification par JacquesF le 21 oct. 2012 09:56, modifié 1 fois.
LibreOffice 5.4.7.2 Linux (et parfois Windows 7)
Avatar de l’utilisateur
alhazred
ManitOOu
ManitOOu
Messages : 3028
Inscription : 30 avr. 2011 23:08
Localisation : Casablanca (Maroc)

Re: [Basic] Etat d'un bouton radio dans un dialogue

Message par alhazred »

Bonsoir,

À quel endroit fais-tu l'appel à XRay ? ça aiderait de voir ton code.
L'aide a écrit :Bouton radio

Ajoute un bouton permettant à l'utilisateur de sélectionner un certain nombre d'options. Les boutons radio groupés doivent avoir des index tabulation consécutifs. Ils sont généralement encerclés par une zone de groupe. Si vous avez deux groupes de boutons radio, vous devez insérer un index tabulation entre les index tabulation des deux groupes du cadre de groupe.
Utiliser un nom de groupe semble donc bien inutile.
À bientôt

LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.

Et la sauvegarde incrémentée, c'est sympa !
JacquesF
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 08 oct. 2012 12:40

Re: [Basic] Etat d'un bouton radio dans un dialogue

Message par JacquesF »

Bonsoir,

Merci de la réponse.
Pour les boutons, ils sont bien dans la même zone de groupe, leur fonctionnement est correct, le basculement de l'un à l'autre est le même.
C'est l'évènement "Action sur le bouton modifié" qui appelle une macro, dans laquelle je prends maintenant en paramètre l’élément source pour savoir quel est le bouton actionné (et donc actif).
En fait, il suffit d'appeler xray avec le nom de la boîte de dialogue ou du bouton à vérifier si on ne veut pas se promener dans les objets (ou utiliser getcontrol autrement). Quelque soit l'état du bouton que je regarde, il a toujours la propriété State égale à celle de sa création, elle ne correspond pas à son status courant.

Mais ta remarque sur le moment où j'appelle la macro m'a fait penser à une autre chose, la déclaration de la variable liée à CreateUnoDialog.
Je l'ai passé en global, et à priori je peux inteagir maintenant sur les éléments de la boîte de dialogue.
Je progresse donc... merci de l'idée.

Je cherche encore et je mettrai le pourquoi du comment ici dès que j'aurai trouvé.

Jacques
LibreOffice 5.4.7.2 Linux (et parfois Windows 7)
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Basic] Etat d'un bouton radio dans un dialogue

Message par Churay »

Bonjour

Si tu joins un fichier avec ta boîte de dialogue et le code qui récupère (mal) les valeurs, les volontaires y verront plus clair...
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
JacquesF
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 08 oct. 2012 12:40

Re: [Basic] Etat d'un bouton radio dans un dialogue

Message par JacquesF »

Merci, mais comme je le disais plus haut, c'est surtout une piste dont j'avais besoin.
Le code n'est pas encore clair...

Mis le problème venait bien du fait que n'ayant pas déclaré le dialogue comme global, j'accédais à une nouvelle instance de l'objet dans la routine appelée.
Donc, pour lire correctement les états des contrôles d'un dialogue depuis une autre routine, il faut un objet global.

Je asse le sujet en résolu
Merci

Jacques
LibreOffice 5.4.7.2 Linux (et parfois Windows 7)