Bonjour,

AU pages p 72-73 du livre "ProgrammationOpenOffice.org2", chapître
"Variable commune à un module" est expliqué l'usage de Private.

Pour cela il faut utiliser l'instruction "CompatibilityMode(True)" :

"La déclaration Dim est remplacée par une déclaration Private, en dehors
des deux routines mais dans le même module. Private s'emploie avec la
même syntaxe que Dim.

De plus, nous avons ajouté l'instruction CompatibilityMode(True) au
début de la macro principale. Cette instruction permet le fonctionnement
correct de Private ; en son absence, la variable Chanson resterait
connue dans tous les modules de la bilbiothèque. Ce mode de
compatibilité a été introduit pour corriger une bogue tout en évitant
que d'anciennes macros ne focntionnent plus ; il doit être activé
dynamiquement (en exécutant l'instruction avant d'utiliser la variable)
et il peut être désactivé de la même manière en exécutant
CompatibilityMode(false). il n'est pas possible de tester l'état courant
de CompatibilityMode."

REM  *****  BASIC  *****

rem Code05-01.sxw   bibli : Library2 Module1
Option Explicit

Private Chanson As String

Sub Main1()
CompatibilityMode(True) ' nécessaire pour que Private fonctionne
Chanson = "Au clair de la Lune"
ModifierChanson()
print Chanson
End Sub

Sub ModifierChanson()
Chanson = "Il pleut Bergère"
End Sub

Je ne comprends pas bien ce texte.

Si "en son absence, la variable Chanson resterait connue dans tous les
modules de la bilbiothèque" alors à quoi sert l'instruction Public (page
73 chapître Variable commune à une bibliothèque) ?

En effet Public déclare une variable dans toute la biliothèque. Et si je
comprends bien, ne pas mettre l'instruction CompatibilityMode
reviendrait au même résultat avec Private ?

De plus, quel est l'intérêt de l'instruction CompatibilityMode(False) ?

D'ailleurs, CompatibilityMode(False) ne revient il pas à ne pas inscrire
l'instruction CompatibilityMode dans la macro ?

Cordialement

ps : on dit un bogue ou une bogue ?   

Accédez au courrier électronique de La Poste : www.laposte.net ; 
3615 LAPOSTENET (0,34 €/mn) ; tél : 08 92 68 13 50 (0,34€/mn)



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à