Thanks TraumTaenzerDiet, I will have a look as you suggest.
But, truth be know, this whole thread is down to me doing things in the wrong order. The things I could not (manually) change the colours on were, if I looked a little closer, being changed automatically for me.
There are a handful of things that don't quite work as they should but if you set a dark theme, a Lazarus programme does make a pretty good effort to act accordingly.
The exception being -
* Forms retain the colouring that they determined was appropriate when the app started. Some controls change as soon as the theme is changed.
* My application uses KControls extensively, it needs manual changing.
* Some controls, while changing with theme changes, don't do it terribly well.
This, still experimental, is useful to determine is we are currently 'doing' a dark theme so we can do the manual adjusting for those things that need it.
var
Col : string;
begin
// if char 3, 5 and 7 are all 'A' or above, we are not in a DarkTheme
Col := hexstr(qword(GetRGBColorResolvingParent()), 8);
if (Col[3] < 'A') and (Col[5] < 'A') and (Col[7] < 'A') then begin
debugln('Its definitely a Dark Theme');
......
(I still think dark themes are ugly ! )
Davo