Pagina1 van 1
Forum

Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!

Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.

Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.



Deel:
Meldingen
Alles wissen

[Opgelost] Lazarus - macOS - Hoe lees je macOS systeem preferences

1 Berichten
1 Gebruikers
0 Reactions
1,241 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2835
Topic starter  

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.


   
BeantwoordenCiteren
Deel: