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]
