Most of the time I need to load/save simple config values for applications, so I wrote a wrapper object for TIniFile which handles a lot of generic detail. I now add a TSettings object to a form, and have one line to load the ini file, and access string elements. Recently it grew to include XML support and the ability to associate with controls on the form, load/save standard window settings. It was originally written for Delphi, it's now pretty messy and needs rewriting, but I wonder if there are any units in Lazarus library for handling application config?
public
AppSettings: TSettings;
...
begin
// get the stored settings, e.g. on FormCreate
AppSettings := TSettings.Create ('myapp');
AppSettings.Load;
MyValue := settings ['a_value'];
...
// store settings, e.g. on Close
settings ['a_value'] := 'new value';
settings.Save;