Le Mardi 16 Mai 2006 14:21, Philippe Allart a écrit :
Bonjour,
Dans la lignée du fil sur la manière de conserver les paramètres d'une
boîte de dialogue, je me demandais s'il existait une manière simple de
stocker dans l'environnement utilisateur une information qui serait
persistante d'une session à l'autre, accessible en lecture et en
écriture par une macro.
J'ai bien pensé à faire une base de donnée. Mais s'il y une autre
méthode, je suis preneur.
On peut utiliser l'API et le module registry.
Voici un extrait de code en python que j'utilise pour CADOOo.
Je pense qu'il peut être adapté au BASIC.
# ================
# acces aux registres
# ================
self.aRegistry =
self.ctx.ServiceManager.createInstanceWithContext("com.sun.star.registry.SimpleRegistry",
self.ctx)
sFile = "./cadooo.rdb"
aURL = unohelper.systemPathToFileUrl(sFile)
try:
self.aRegistry.open(aURL, False, False)
except InvalidRegistryException, e:
self.aRegistry.open(aURL, False, True)
aRootKey = self.aRegistry.getRootKey()
# Une liste de drapeau correspondant aux états des accrochages aux
objets
self.aL2OStateKey = aRootKey.openKey("L2OSTATE")
if self.aL2OStateKey is None:
self.aL2OStateKey = aRootKey.createKey("L2OSTATE")
self.aL2OStateKey.setLongListValue(self.aValues['L2OSTATE'])
self.aValues['L2OSTATE'] = self.aL2OStateKey.getLongListValue()
# un entier reflétant l'état du mode axonométrique
self.aOrthomodeKey = aRootKey.openKey("ORTHOMODE")
if self.aOrthomodeKey is None:
self.aOrthomodeKey = aRootKey.createKey("ORTHOMODE")
self.aOrthomodeKey.setLongValue(self.aValues['ORTHOMODE'])
self.aValues['ORTHOMODE'] = self.aOrthomodeKey.getLongValue()