Not sure what you're asking ... so I'll try to go through the steps, hopefully clarifying things.
1) Aqua is the default system theme after a fresh OS install.
Obviously the user can change the theme, potentially making the active OS theme no longer Aqua, but for example VibrantDark or VibrantLight.
2) A Lazarus Cocoa application will not detect/pickup whatever OS theme is active when it starts.
So if VibrantDark is the current OS Theme, the application would not have a clue and just show the Aqua theme for it's controls.
The only option to get your application to show it's control in VibrantDark is to use your macOS extension and force Appearance to VibrantDark.
3) A Lazarus Cocoa application will also not detect/pickup when a theme get's change.
Changing the OS theme will have zero influence on the application while it's running.
For 2) and 3): I noticed the same behavior with a Cocoa application build with XCode (v9.4.1) application, so I presume this is expected behavior.
From what I have read; the OS will not change NSColor values when the OS theme changes.
Instead your application needs to register a function with
NSDistributedNotificationCenter, (name "
AppleInterfaceThemeChangedNotification") so that the OS can notify the application that a different theme is being used. The passed function then has to set Appearance to make the actual change. MacOSFormProp, could be used in that particular case.
That's why I was thinking of implementing this somehow in your MacOSFormProp component.
I'm trying to figure it out myself, but I'll admit it's a bit over my head.
I found this to be a good read, it clarified quite a bit for me (but then again, I'm not a a Cocoa guru like you are):
https://mackuba.eu/2018/07/04/dark-side-mac-1/So trying to understand your question; Theme = Dark, App starts with "VibrantLight", switch OS theme to Aqua => changes nothing for the application. The colors remain as they were when the application started.