Следующие несколько строк кода позволяют установить системную дату и время без использования панели управления. Дата и время устанавливаются двумя раздельными компонентами TDateTimePicker. Дата и время декодируются и передаются в API функцию.
Из значения часа вычитается 2 для установки правильного времени. (Примечание Vit: вычитается не 2 часа а разница с Гринвичем)
Code: |
procedure TfmTime.btnTimeClick(Sender: TObject); var vsys : _SYSTEMTIME; vYear, vMonth, vDay, vHour, vMin, vSec, vMm : Word; begin DecodeDate( Trunc(dtpDate.Date), vYear, vMonth, vDay ); DecodeTime( dtpTime.Time, vHour, vMin, vSec, vMm ); vMm := 0; vsys.wYear := vYear; vsys.wMonth := vMonth; vsys.wDay := vDay; vsys.wHour := ( vHour - 2 ); vsys.wMinute := vMin; vsys.wSecond := vSec; vsys.wMilliseconds := vMm; vsys.wDayOfWeek := DayOfWeek( Trunc(dtpDate.Date) ); SetSystemTime( vsys ); end; |
Code: |
function SetTime(DateTime:TDateTime): boolean; var st: TSystemTime; ZoneTime: TTimeZoneInformation; begin GetTimeZoneInformation(ZoneTime); DateTime:=DateTime+ZoneTime.Bias/1440; with st do begin DecodeDate(DateTime, wYear, wMonth, wDay); DecodeTime(DateTime, wHour, wMinute, wSecond, wMilliseconds); end; Result:=SetSystemTime(st); end;
|
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!