Instellingen of configuratiebestand

Gambas heeft een bibliotheek voor het gebruiken van een configuratiebestand, en die krijg je door bij de eigenschappen van het project de gb.settings component aan te duiden.

In code vraag je een waarde zo op:

ME.iBoven = Settings["Venster/Boven", ME.iBoven]
ME.iLinks = Settings["Venster/Links", ME.iLinks]
...

Er zitten herkenbare elementen in de werkwijze van het configuratiebestand, als een herkenbare hoofding en naam=waarde elementen:

...
[Venster]
Boven=13
Links=18
Hoogte=154
Breedte=235
...

Met Settings kan de waarde even gemakkelijk bewaard worden:

..
Settings["Venster/Boven"] = ME.iBoven
...

Je kan waarden ophalen, bewaren, vergeten, terughalen en wegschrijven.

Het gebruik wordt summier omschreven in de gambas Settings documentatie.

Een voorbeeld is de Gambas IDE zelf, met in /home/username/.config/gambas/gambas2.conf zijn instellingen.

Daarin zie je ook arrays in zowel de waarde als de naam:

[FColorChooser]
Geometry=[493,333,294,357]
...
File[1]="/home/username/Data/GambasPrj/Dev/Hello"
File[2]="/home/username/Data/GambasPrj/MyExamples/SimpleCharts"
...

Zo kijk je na waar het staat - steek de code bv onder een button_Click():

PRINT File.Load(Settings.path &/ Application.Name & ".conf")
CATCH
  Message.Error(Error.Text & " fout met config - bestaat niet? ")


De waarde van Settings.path is niet wijzigbaar (tenzij je een eigen settings object maakt).

Het configuratiebestand wordt niet automatisch aangemaakt, dus zal in eerste instantie niet bestaan.
Het moet nochtans niet zelf als leeg bestand gecreƫerd worden. (ps: wat als een opgegeven directory nog niet bestaat?)

Met Settings.Save wordt het gemaakt, maar ook dan pas als er iets te bewaren valt, bv na het commando om de instellingen van het huidige venster (ME) te bewaren: Settings.Write(ME).

code onder een button btTest:

PUBLIC SUB btTest_Click()
   Message.Info("settings staan hier: " & Settings.Path)
   Settings.Write(ME)
   Settings.Save()
   CATCH
     Message.Error(Error.Text)
END

Het config bestand bevat daarna dan bv:

[FMain]
Geometry=[0,0,742,798]

Er zijn 2 manieren om instellingen te bewaren:

  • object, automatisch :
    Voor Window objecten kan je instellingen bewaren en opvragen met eenvoudige .Write en .Read
  • eigen parameters: sTeststring = Settings["Factuur/Laatstenummer"] om op te vragen en
    Settings["Factuur/Laatstenummer"] = sTeststring om op te halen.

Eens het bestand bestaat kan je er altijd parameters bij in zetten. In je code:

Settings["Factuur/Laatstenummer"] = "08001234"
Settings["Versie/Versienummer"] = "v1.0"
Settings["Versie/Serienummer"] = "-0001"

.. verandert het laatste factuurnummer en voegt (als het nog niet bestond) een hoofdstuk Versie toe met de parameters Versienummer en Serienummer.

One Response to “Instellingen of configuratiebestand”

  1. Settings toepassing at Gambas.noxqs.org Says:

    […] Eenvoudige toepassing van Instellingen of configuratiebestand […]

Leave a Reply

You must be logged in to post a comment.