Soms wil je de systeem instellingen lezen, zodat jouw applicatie zich daar op aan kan passen.
Ik vond op de Lazarus Wiki - Mac Preferences Read and Write pagina goede info om mee te beginnen, maar het legt de focus op voorkeuren opslaan en lezen voor jouw eigen applicatie en ik wilde specifiek systeem instellingen kunnen lezen.
In mijn geval wilde ik de "reduceTransparency" instelling uitlezen welke te vinden is in "com.apple.universalaccess" (Bestand: ~/Library/Preferences/com.apple.universalaccess).
Als eerste heb je de units MacOSAll en CFPreferences nodig;
uses MacOSAll, CFPreferences;
N.B.: CFPreferences is niet nodig als jouw project CocoaAll al gebruikt.
Vervolgens hebben we twee variabelen nodig, een voor om aan te geven of de key bestaat en een voor het opvangen van het resultaat:
var
IsValid: Boolean; // On return indicates if key exists and has valid data
Pref: Integer;
Het lezen van de instelling wordt nu erg eenvoudig:
Pref := CFPreferencesGetAppIntegerValue(CFStr('reduceTransparency'),CFSTR('com.apple.universalaccess'),IsValid);
N.B.: als de key niet bestaat, dan mag je verwachten dat "IsValid" = FALSE wordt.
De datatypes die ik zo 1-2-3 kon vinden:
CFPreferencesGetAppIntegerValue
CFPreferencesGetAppBooleanValue
Het gebruik van strings en arrays is wat ingewikkelder.