Message de Jean-Baptiste Faure  date 2009-05-17 16:45 :
Le 16.05.2009 22:33, Bernard Marcelly a écrit :
Message de Jean-Baptiste Faure  date 2009-05-16 18:04 :
Le 16.05.2009 16:59, Didier LAMARE a écrit :

Bonjour Jean-Baptiste,

Merci pour le lien sur les nouveautés dans Base. Je l'avais déjà
parcouru.

Le problème avec Lock/UnlockController est résolu, il suffit de
remplacer "ThisComponent.lockControllers" par
"ThisDataBaseDocument.lockControllers".

Par contre le deuxième problème est toujours d'actualité, et je suis à
peu prés sûr que c'est un bug. En effet j'arrive à utiliser les autres
méthodes de cet objet (getText, setEnable) et la métode isVisible me
renvoie bien son statut (False ou True), mais il reste affiché à
l'écran, alors que le  statut est False.

Est-il possible d'ouvrir un incident?

Je joins un nouveau document, plus simple. Dans le formulaire
"Formulaire1" les deux boutons réalisent la même opération, rendre
visible  ou invisible le champs d'étiquette "Cible". La différence est
dans la manière d'accéder au document, le bouton "Change Etat_1" est
la méthode utilisée en 301 avec la macro dans le formulaire, l'autre
"Change Etat_2" est le méthode utilisée avec la 310, la macro est dans
le fichier .odb.
J'espère être clair.

Je te souhaire une bonne journée.

Cordialement
Didier

Bonjour Didier,

On peut bien sûr soumettre un rapport de bug mais je crois qu'il est
utile avant de le faire de demander confirmation sur la liste prog-fr où
il y a des experts de la programmation dans OOo. Je mets donc la liste
prog en copie.
Comme je ne connais pas grand-chose aux macros et à OOo-Base je suis
bien en peine de confirmer le problème et de l'expliquer en anglais sur
IZ. Donc si un expert es macros pouvait nous en dire plus, ce serait
sympa. Je remets le fichier de test en pièce jointe.

Le codage de la macro "Main" est inutilement complexe. Mais
effectivement, le basculement de Visible ne fonctionne pas.

1 - La macro étant déclenchée depuis un formulaire, ThisComponent
renvoie le document formulaire.  A partir de là, on récupère
facilement le contrôle.
2 - le formulaire utilise un contrôle Etiquette. Je l'ai remplacé par
un contrôle Texte pour voir ce qui se passe quand le contrôle est
supposé invisible.
3 - Si on bascule un contrôle en invisible, il est inutile de basculer
son état Enable, car on ne peut plus le modifier.
4 - OOoBasic n'optimise pas les codages : répéter les séquences
xx.yy.zz est non seulement pas clair mais pas rapide. J'ai employé des
variables intermédiaires.

Voilà le résultat:

Sub Main
Dim formulaireEnCours as Object, ctrlTexte As Object, vueCtrl As Object
Dim oView As Object

formulaireEnCours  = ThisComponent.DrawPage.Forms.getByName("Standard")
ctrlTexte = formulaireEnCours.getByName("Cible")
oView = ThisComponent.CurrentController
vueCtrl = oView.getControl(ctrlTexte)
vueCtrl.Visible = not vueCtrl.isVisible
MsgBox("Visible ? " &  vueCtrl.isVisible)
End Sub

A l'exécution on constate :
- le message affiche bien False, True, False, avec des appuis
successifs du bouton.
- le contrôle reste toujours visible, mais il ne peut être modifié
quand il est "supposé invisible".

Tu peux faire un rapport en fournissant un document simplifié (changer
la macro Main, mettre un contrôle Zone de texte, supprimer le bouton
et la macro concernant la version 3.0.1).

 Cordialement,
    Bernard
Bonjour Bernard,

Pierre-Yves Samyn estime que ce problème est un retour de celui-ci :
http://qa.openoffice.org/issues/show_bug.cgi?id=83611.
Est-ce que tu confirmes ? Sinon je ferai un rapport de bug comme tu le
proposes.

Bonne journée
JBF


C'est similaire, mais IZ 83611 est supposé corrigé sur 2.4 donc c'est une régression, donc un nouveau problème. Je pensais que le demandeur initial Didier LAMARE se chargerait de faire le rapport, puisqu'il est concerné.

 Cordialement,
    Bernard


---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à