⤷ Check if time has been changed

You should intercept WM_TIMECHANGE message.
Implementation of this idea is so:

type
  TForm1 = class(TForm)
    Label1: TLabel;
  private
    procedure MyMessage(var Msg: TWMTimeChange); message WM_TIMECHANGE;
    { Private declarations }
  public
    { Public declarations }
  end;

...

procedure TForm1.MyMessage(var Msg: TWMTimeChange);
begin
  if Msg.Result=0 then
    Form1.Label1.Caption:='OK';
end;
More for developers