Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.07.2012, 20:20
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
Стрелка как прикрутить таймер?

Всем добрый день!
Есть код (приведенный ниже), требуется установить таймер, чтобы сообщения выводились ч/з 3 секунды!
... как реализовать, нет опыта работы с Timer
Кто знает, помогите, плиз!
Код:
procedure TForm1.Image3Click(Sender: TObject);
begin
  // проверка 1-й службы
  if ServiceGetStatus('','A1')=SERVICE_RUNNING then
  Label2.Caption:=(' запущена ')
  else Label6.Caption:=(' не запущена ');
  // проверка 2-й службы
  if ServiceGetStatus('','A2')=SERVICE_RUNNING then
  Label8.Caption:=(' запущена ')
  else Label10.Caption:=(' не запущена ');
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #2  
Старый 23.07.2012, 20:30
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Точно так же как и кнопку, только в свойствах проставь интервал.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 23.07.2012, 21:15
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Точно так же как и кнопку, только в свойствах проставь интервал.
наверное не правельно поставлен мною вопрос!
Требуется, чтобы м/у службами А1 и А2 прошло 3-5 секунд
(компилю в Delphi 2010)
__________________
... всегда есть чему учиться и куда стремиться...

Последний раз редактировалось osminog, 23.07.2012 в 21:25.
Ответить с цитированием
  #4  
Старый 23.07.2012, 21:34
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от osminog
наверное не правельно поставлен мною вопрос!
Требуется, чтобы м/у службами А1 и А2 прошло 3-5 секунд
(компилю в Delphi 2010)
А что значит "чтобы м/у службами А1 и А2 прошло 3-5 секунд"
Ответить с цитированием
  #5  
Старый 23.07.2012, 21:36
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от MiraLaklamon
А что значит "чтобы м/у службами А1 и А2 прошло 3-5 секунд"
получил ответ, что служба А1 запущена (или нет)
прошло 3-5 сек
получил ответ, что служба А2 запущена (или нет)
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #6  
Старый 23.07.2012, 21:44
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Понял, тебе нужен отложенный вызов процедуры. Я бы сделал на потоке, внутрях которого Sleep(3000) и вызов твоего обработчика.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
osminog (23.07.2012)
  #7  
Старый 23.07.2012, 21:52
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от osminog
получил ответ, что служба А1 запущена (или нет)
прошло 3-5 сек
получил ответ, что служба А2 запущена (или нет)
В таймере выставь у свойства "Interval" нужное значение в миллисекундах (3000 - значит 3 секунды). И примерно такой код в обработчике "OnTimer" у таймера.
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Tag:=Timer1.Tag+1;
  if Odd(Timer1.Tag) then
  begin
    // проверка 1-й службы
    if ServiceGetStatus('','A1')=SERVICE_RUNNING then
    Label2.Caption:=(' запущена ')
    else Label6.Caption:=(' не запущена ');
  end else
  begin
    // проверка 2-й службы
    if ServiceGetStatus('','A2')=SERVICE_RUNNING then
    Label8.Caption:=(' запущена ')
    else Label10.Caption:=(' не запущена ');
  end;
end;

Цитата:
Сообщение от M.A.D.M.A.N.
Понял, тебе нужен отложенный вызов процедуры. Я бы сделал на потоке, внутрях которого Sleep(3000) и вызов твоего обработчика.
Для этой задачи это помоему излишнее усложнение.
Ответить с цитированием
Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение:
osminog (23.07.2012)
  #8  
Старый 14.08.2012, 09:37
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от MiraLaklamon
А что значит "чтобы м/у службами А1 и А2 прошло 3-5 секунд"
службы запускаються должны с промежутком в 5 секунд! если их сразу вместе запускать = то они висят и не запускаются, поэтому нужно, чтобы стортовала сначала одна служба (получить ответ), затем вторая...
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #9  
Старый 14.08.2012, 11:23
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от osminog
службы запускаються должны с промежутком в 5 секунд! если их сразу вместе запускать = то они висят и не запускаются, поэтому нужно, чтобы стортовала сначала одна служба (получить ответ), затем вторая...
  1. Запускаешь первую службу
  2. Делаешь паузу:
    Код:
    Sleep(5000);
  3. Запускаешь вторую службу

Или так:
  1. Запускаешь первую службу
  2. Включаешь таймер на 5 секунд
    Код:
    Timer1.Interval := 5000;
    Timer1.Enabled := True;
  3. В обработчике события таймера (OnTimer):
    1. Отключаешь таймер:
      Код:
      Timer1.Enabled := False;
    2. Запускаешь вторую службу
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:34.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025