Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

изменить/вернуть обратносистемную дату с помощью DateTimePicker [D7]


Garacio ©   (2007-01-18 08:54:00) 

Приветствую всех!
Мне необходимо во время работы с программой менять и возвращать системную дату, для этого я выбрал компоненты: DateTimePicker (для того, чтобы изменить дату) и Button2 (чтобы нажатием на неё вернуть первоначальную). Изменять дату в DateTimePicker пробую так:
procedure TForm1.Button1Click(Sender: TObject);
var vsys : _SYSTEMTIME;
   vYear, vMonth, vDay : Word;
begin
DecodeDate( Trunc(DateTimePicker1.Date), vYear, vMonth, vDay );
vsys.wYear := vYear;
vsys.wMonth := vMonth;
vsys.wDay := vDay;
vsys.wDayOfWeek := DayOfWeek( Trunc(DateTimePicker1.Date) );
SetSystemTime( vsys );
end;

Эффекта никакого :-) ?!?
Как мне исправить код и что написать в процедуре нажатия кнопки (Button2) для возврата времени?


Garacio   (2007-01-18 11:34:00) [1]

Что значит "собъется", прошу прокомментировать!


Elen   (2007-01-18 11:34:00) [2]


> Так и время "собъется"

Ничего. Время штука временная, собъется и пройдет. :). Ну по-моему автору это и надо, хотя выставление времени прокатит ИМХО только при соответствующих правах типа админ.


ЮЮ   (2007-01-18 11:31:00) [3]


> DateTimePicker1.DateTime:=dt;


Так и время "собъется"


Garacio   (2007-01-18 11:30:00) [4]

Elen, Вы -ЗОЛОТО!!!


Elen   (2007-01-18 11:26:00) [5]


> Только, это не Х:=5, а "дата", поэтому я пока не знаю как
> присвоить переменной значение DateTimePicker при FormCreate
> и при нажатии кнопки  вернуть в DateTimePicker это значение!


var     dt:TDateTime;
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  dt:=DateTimePicker1.DateTime;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
DateTimePicker1.DateTime:=dt;
end;


Garacio   (2007-01-18 11:22:00) [6]

Вернуть утраченное нельзя.
С оговоркой:если первоначально не сохранить в значении какой-либо переменной! =)
Только, это не Х:=5, а "дата", поэтому я пока не знаю как присвоить переменной значение DateTimePicker при FormCreate и при нажатии кнопки  вернуть в DateTimePicker это значение!


Elen   (2007-01-18 10:53:00) [7]


>  для возврата времени?

Возврата куда? и какого конкретно времени?


ЮЮ   (2007-01-18 10:53:00) [8]


> Сейчас испытаю! А как по-поводу:


Вернуть утраченное нельзя.Будучи установленным любое время станет системным. :) Запомни до изменения и измени опять.


Garacio   (2007-01-18 10:47:00) [9]

Сейчас испытаю! А как по-поводу:
нажатия кнопки (Button2) для возврата времени?


novill   (2007-01-18 09:18:00) [10]

> Эффекта никакого

чтобы узнать причины добавь строчку
caption:=SysErrorMessage(GetLastError);
и посмотри что пишут.


Elen   (2007-01-18 09:12:00) [11]


> Garacio

Возможно понадобятся админ права :

procedure TForm1.DateTimePicker1Change(Sender: TObject);
var s:_SYSTEMTIME;  
begin
GetSystemTime(s);
DecodeDate(DateTimePicker1.DateTime,s.wYear,s.wMonth,s.wDay );
if SetSystemTime(s) then caption:='ok' else RaiseLastWin32Error;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо