Basic - Constante

Bonjour

j'ai créé une bibliothèque .oxt comprenant plusieurs modules.

Soit le module 1 :
...
Global Const LEN_T=5
....

Sub test
Dim Tablo(LEN_T)
....

et le module 2 :

...
Sub proc
Dim Table(LEN_T)
...

La fonction Test du module 1 s'exécute sans problème. La fonction Proc du module 2 déclenche une erreur "Erreur de lecture. Cette propriété est en lecture seule."
Il semble que pour utiliser une constante dans la déclaration d'un tableau, il faut que la constante soit déclarée dans le même module.
Quelqu'un connait-il le problème ? Faut-il considérer ça comme un bug ?

Merci

Windows 7 Pro et LO 5.3.2

ML

Bonsoir,

-----Message d'origine-----
De : Lejeau Michel [mailto:michel.lejeau@insee.fr]
Envoyé : mardi 13 octobre 2015 15:58
À : users@fr.libreoffice.org
Objet : [fr-users] Basic - Constante

Bonjour

j'ai créé une bibliothèque .oxt comprenant plusieurs modules.

Soit le module 1 :
...
Global Const LEN_T=5
....

Sub test
Dim Tablo(LEN_T)
....

et le module 2 :

...
Sub proc
Dim Table(LEN_T)
...

La fonction Test du module 1 s'exécute sans problème. La fonction Proc du
module 2 déclenche une erreur "Erreur de lecture. Cette propriété est en
lecture seule."
Il semble que pour utiliser une constante dans la déclaration d'un
tableau, il faut que la constante soit déclarée dans le même module.
Quelqu'un connait-il le problème ? Faut-il considérer ça comme un bug ?

Je viens de vérifier, et je confirme (LibO 4.4.5.2 - Vista)

Pourtant la constante est bien reconnue dans le Module2 (vérifié en la
faisant afficher avec MsgBox(LEN_T))
Pour contourner, il suffit d'utiliser une variable intermédiaire, par
exemple:
x = LEN_T
Dim Table(x)

Ca me semble être un bug, mais je n'ai pas eu le temps de regarder plus
loin, en particulier sur bugzilla.

Cordialement,
Michel