Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2009, 22:22   #1
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию Не получается применить DecodeDate

пытаюсь изменить системную дату на компьютере программно. Использую процедуру DecodeDate.
Код следующий:
Код:
var
  Form1: TForm1;
  per : TdateTime;
  timer : _SYSTEMTIME;
  wYaer, wMonth, wDay, wHour, wMinute, wSecond, wMilliseconds :word;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
per := Now;
Label1.Caption:='Системная дата '+DateToStr(per)+' и время  '+TimeToStr(per);
//ShowMessage(DateToStr(per));

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
per:=MonthCalendar1.Date;
ShowMessage(DateToStr(per));
with timer do
begin
DecodeDate(per, wYaer, wMonth, wDay);
DecodeTime(per, wHour, wMinute, wSecond, wMilliseconds);
end;
ShowMessage(IntToStr(wYaer)+' '+IntToStr(wMonth)+' '+IntToStr(wDay)) ;
SetSystemTime(timer);
MonthCalendar2.Date:=per;
end;
Ошибок при выполнении не дает, но и дата не меняется ...
Показывает, что переменная per нормальная .. т.е. 23.10.2009 например.
А вот
wYaer = 2009
wMonth = 0
wDay = 0
я не понимаю почему так происходит ...
sergey113 вне форума Ответить с цитированием
Старый 27.03.2009, 22:39   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А хэлп почитать? Лень?
Цитата:
BOOL SetSystemTime

Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

Windows NT: The SetSystemTime function fails if the calling process does not have the SE_SYSTEMTIME_NAME privilege. This privilege is disabled by default. Use the AdjustTokenPrivileges function to enable this privilege and again to disable it after the time has been set. For more information about security privileges, see Privileges.
И потом - а где вы дату-то меняете?

Последний раз редактировалось mihali4; 27.03.2009 в 23:25.
mihali4 вне форума Ответить с цитированием
Старый 27.03.2009, 23:12   #3
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

ничего не понял из того что написанно разобрался.. помогло точное описание пременных не так :
wYear
а так
timer.wYear Благодарая контекстной справке была обнаружена опечатка в листинге программы...
Спасибо всем братцы !
sergey113 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Применить стиль ко всем инпутам, кроме "radio" и "checkbox"? barbiturat HTML и CSS 1 03.12.2008 15:33
применить Алгоритм Дейкстры для поиска кратчайшего пути в графе Эдгар Microsoft Office Excel 13 24.10.2008 21:01
Не знаю, как применить СУММЕСЛИ Katherina_Koval Microsoft Office Excel 2 30.07.2008 13:56
Как можно применить к тексту комонент PageSetupDialog Bill Gates Общие вопросы Delphi 1 30.12.2007 20:17
считает что ReOpArr это обычный массив и не может применить к нему процедуру SetLength. Dunpeal Общие вопросы Delphi 2 24.12.2007 08:07