![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
изменить/вернуть обратносистемную дату с помощью 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;