Ok, Seems like I need to add "Windows" unit in uses clause. Below code works fine for me
uses Windows;
procedure TForm1.Button3Click(Sender: TObject);
var
dt:TSystemTime;
begin
dt.wYear := StrToInt(FormatDateTime('yyyy', now));
dt.wMonth := StrToInt(FormatDateTime('mm', now));
dt.wDay := StrToInt(FormatDateTime('dd', now));
dt.wHour := StrToInt(Edit1.Text);
dt.wMinute := StrToInt(Edit2.Text);
dt.wSecond := StrToInt(Edit3.Text);
dt.wMilliseconds := 0;
SetLocalTime(dt);
end;