![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 29.04.2007
Сообщений: 2
|
![]()
Люди помогите пожилуста!!! Как сделать штобы программа в заданное время выполнила определенное действие???!
|
![]() |
![]() |
![]() |
#2 |
Студент
Форумчанин
Регистрация: 10.11.2006
Сообщений: 196
|
![]()
Если особая точнось не важна, то ставишь таймер с интервалом в 60000 мс (1 минута), а на событие WM_TIMER должна реагировать
процедура, определяющая, нужно ли сейчас что-то делать или нет. Соответственно, если действие однократное, отрубаем таймер.
Visita Interiorem Terrae Rectificando Operae Lapidem...
|
![]() |
![]() |
![]() |
#3 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,630
|
![]() |
![]() |
![]() |
![]() |
#4 | |
Новичок
Джуниор
Регистрация: 29.04.2007
Сообщений: 2
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.02.2007
Сообщений: 13
|
![]()
Просто узнаешь текущую дату:
procedure ShowTime; var Now: TDateTime; begin Label1.Caption:=FormatDateTime('dd. mm.yyyy', Now); end; помоему так, если не ошибаюсь... Прописываешь ее где-нить на Form.Show, а потом сравниваешь со своей заданной |
![]() |
![]() |
![]() |
#6 |
Студент
Форумчанин
Регистрация: 10.11.2006
Сообщений: 196
|
![]()
To Egych: Одно "но". Бывает, что компьтеры невыключают вообще, тогда
этот вариант не годится. To WOWan234: Ставь проверку при запуске + таймер с интервалом 1-2 м минуты. Поэтому таймер очень даже годится.
Visita Interiorem Terrae Rectificando Operae Lapidem...
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
uses Registry;
type TForm1 = class(TForm); ... private FHaveDateInRegistry: boolean; //флаг для проверки - была ли занесена запись в реестр FRegistry: TRegistry; //переменная для работы с реестром FDateTime: TDateTime; ... procedure TForm1.FormCreate(Sender: TObject); begin FRegistry := TRegistry.Create; FRegistry.RootKey := HKEY_CURRENT_USER; FRegistry.OpenKey('\MyVarDateTime', true); FHaveDateInRegistry := FRegistry.ValueExists('FHaveDateTim eInRegistry'); //при первом запуске программы эта переменная не будет в реестре, поэтому возвращаемое значение будет false. { дальше возможны варианты. Например на форме расположен компоненты TDateTimePicker, по которым ты и определяешь дату и время, когда сработает программа и кнопка для записи даты в реестр.} if FHaveDateInRegistry then //запись существует, значит все что нужно, в реестре уже есть begin if FRegistry.ValueExists('DateTimePick er12') then FDateTime := FRegistry.ReadDateTime('DateTimePic ker12') else FDateTime := EncodeDateTime(2007, 4, 1, 12, 0, 0, 0); DateTimePicker1.Visible := false; DateTimePicker2.Visible := false; Button1.Visible := false; Timer1.Enabled := true; end; end; procedure TForm1.Button1Click(Sender: TObject); begin FRegistry.WriteBoolean('FHaveDateIn Registry', true); FRegistry.WriteDateTime('DateTimePi cker12', Trunc(DateTimePicker1.DateTime) + frac(DateTimePicker2.DateTime)); end; procedure TForm1.Timer1Timer(Sender: TObject); begin if FDateTime = Date + Time then <твое событие> end;
Не надо ничего усложнять. Все достаточно тривиально.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выполнение действия через промежуток времени | chingiz | Общие вопросы Delphi | 37 | 03.10.2012 11:33 |
Выполнение функции | nikleb | JavaScript, Ajax | 7 | 10.08.2008 01:49 |
Дано четырехзначное число, заданное в символьном виде, например, '1954'. Напечатать его текстом, например | gred | Помощь студентам | 13 | 31.03.2008 22:24 |
Засечь время, затраченное на выполнение программы. Делфи. | north | Помощь студентам | 5 | 12.12.2007 22:32 |
Выполнение действия с компонентами в цикле | Ermiss | Общие вопросы Delphi | 4 | 01.11.2007 23:54 |