Eenvoudige toepassing van Instellingen of configuratiebestand
Start een nieuw project met de naam ConfigSettings
.
Kies bij Project Type, Options “File Settings Files Management”
Controle: Daardoor is onder project eigenschappen gb.settings
aangekruist.
Vertrek op de nieuwe FMain
form:
– maak een button bovenaan “btnShowConfig
“.
– dubbelklik op de knop en vul er de volgende code in:
Message.Info(File.Load(Settings.path &/ Application.Name & ".conf"))
CATCH
Message.Error(Error.Text & " fout met config - bestaat niet? ")
= Een “run” levert normaal de foutmelding op.
Een beetje lager zet je een invultekstveld “txbxSetText1
”
Maak een nieuwe knop en zet die ernaast, met naam “btnSetText1
” en zet in de code van click:
PUBLIC SUB btnSetText1_Click()
Settings["Instelling1"] = txbxSetText1.Text
END
= Een “run” doet niets nieuws lijkt op het eerste zicht. btnShowConfig geeft zelfde foutmelding. Je verlaat het programma.
= Een direkt daaropvolgende “run” met opvragen van btnShowConfig verrast misschien met je “instelling” van het tekstveld van de vorige “run”: onder een hoofding General (die je niet opgaf – standaard dus):
[General]
Instelling1=”txbxSetText1″
en een knop “ok”. Opeenvolgende “runs” tonen dat steeds de vorige ingevulde tekst, die je met btnSetText bevestigde, opgeslagen was.
Dat kan je terugvinden in de verborgen config directory:
/home/loginname/.config/gambas/
met de naam
ConfigSettings.conf
Open dat bestand met kate of een andere code-tekstverwerker en voeg een tweede “instelling” toe:
[General]
Instelling1="geheim"
Instelling2="nieuw"
Laat het programma lopen en vraag de instellingen op.
update 2012 11 30
Als je een configuratie-instelling opvraagt maar je bent niet zeker of die bestaat, geef je een standaardwaarde op die gebruikt moet worden bij ontbreken van de te zoeken instelling.
iHoogte = Settings[“General/Hoogte”, 120)
Als je wil testen of een configuratie-sleutel voorkomt of niet, zet je zelf “NULL” als alternatieve standaardwaarde.
IF isNull(Settings[“General/Runcounter”, NULL])
Settings[“General/Runcounter”] = 0
ENDIF