Gambas France BETA

Connexion

Pas de compte ? Incription

Settings

Ce sujet est résolu.

1
AuteurMessages
valaquarus#1 Posté le 9/3/2025 à 11:55:07
-- Unus Ex Altera --Bonjour à tous,
J'ai un souci avec les settings. Selon que je déclare d'une manière ou d'une autre j'obtiens un comportement différent.
1
2
3
4
5
6
7
8
PUBLIC AppSettings AS Settings

PUBLIC SUB InitDefaultPath() '<---------------------------' initialise les settings

AppSettings = NEW Settings '<---------------------------' création du dossier settings
' AppSettings = New Settings(User.Home &/ ".config/gambas3/" & Application.name & Application.Version & ".conf")

END

Si la ligne AppSettings = New Settings est utilisée pas de souci, réaction normale.
Si la ligne AppSettings = New Settings(User.Home &/ ".config/gambas3/" & Application.name & Application.Version & ".conf") est utilisée, c'est comme si les informations correctes ne s'enregistraient pas ; y a t il une erreur de déclaration?
Pour mémoire, la façon dont les informations sont enregistrées puis rappelées :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
PUBLIC SUB StorePolice() '<------------------------------' store la police choisie

DIM Headline AS STRING

HeadLine = "Police"
AppSettings[HeadLine &/ "pFont"] = MGlobal.sFCValue
AppSettings.Save

END

PUBLIC SUB RestorePolice() '<-----------------------------' Restore la police choisie

DIM HeadLine AS STRING

HeadLine = "Police"
MGlobal.sFCValue = AppSettings[HeadLine &/ "pFont", 1]

END


À votre bon cœur, messieurs dames.
Système d'exploitation : KDE Manjaro.testing ~ Version Gambas : 3.20.2
valaquarus#2 Posté le 9/3/2025 à 13:12:51
-- Unus Ex Altera --Déclaré ainsi :
1
2
3
4
5
6
PUBLIC SUB InitDefaultPath() '<---------------------------' initialise les settings

' AppSettings = New Settings '<---------------------------' création du dossier settings
AppSettings = NEW Settings(User.Home &/ ".config/gambas3" &/ Application.name & Application.Version & ".conf")

END

il faut pour en faire référence l'appeler ainsi :
1
IF MSettings.AppSettings.Exist("Clock" & "/Design") THEN ...

et non ainsi, qui serait réservé à l'instanciation "normale" :
1
IF Settings.Exist("Clock" & "/Design") THEN ...

Ce n'est pas un bug, mais une facilitation qui induit comme toujours une erreur de raisonnement.
Système d'exploitation : KDE Manjaro.testing ~ Version Gambas : 3.20.2
gambix#3 Posté le 9/3/2025 à 18:37:11
La simplicité évite les erreursSetting est une classe auto instanciable

Lors de n'importe quel appel a la classe sous sa forme statique elle fait un truc en interne du genre :
1
Setting = NEW Setting


Le chemin interne vers le fichier du coup est auto généré.

Pour faire le même truc avec vos classe il faut mettre en entête :

1
CREATE STATIC


https://gambaswiki.org/wiki/lang/createstatic?l=fr
Ce que Gambas m'a appris c'est qu'avec le temps on peut être capable de tout.
1