I need to emulate the color selection options of control panel... I looked
up the setsyscolor procedure, but though it seems to cause a global repaint,
it seems to have no effect... is it no longer supported? should I instead
change the win.ini (or is it system.ini - sorry - can't remember right now.)
If I change these values will programs update - or do they have to be
notified in some way?
A:
procedure TMainForm.Button4Click(Sender: TObject);
var
nColorIndex: array [1..2] of integer;
nColorValue: array [1..2] of longint;
begin
nColorIndex[1]:=COLOR_ACTIVECAPTION;
nColorIndex[2]:=COLOR_BTNFACE;
nColorValue[1]:=clBlue;
nColorValue[2]:=clRed;
SetSysColors(2,nColorIndex,nColorValue);
PostMessage(HWND_BROADCAST,WM_SYSCOLORCHANGE,0,0);
end;