Содержание материала

 

Следующие несколько строк кода позволяют установить системную дату и время без использования панели управления. Дата и время устанавливаются двумя раздельными компонентами 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;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить