Форум по 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  
Старый 23.07.2012, 22:20
Аватар для 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
Репутация: выкл
По умолчанию

Цитата:
Сообщение от MiraLaklamon
Для этой задачи это помоему излишнее усложнение.
Не люблю просто формочки и компонентики.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


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

Цитата:
Сообщение от MiraLaklamon
В таймере выставь у свойства "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;


Для этой задачи это помоему излишнее усложнение.

странно, но ругается на эту строчку
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #10  
Старый 23.07.2012, 22:23
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от osminog
странно, но ругается на эту строчку
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
В этой строчке нет ошибки.
Надеюсь таймер на форму положил? И дважды по нему щёлкнул? И вставил в обработчик события код который я привела?

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

Цитата:
Сообщение от MiraLaklamon
В этой строчке нет ошибки.

пишет Errors:
'TForm1' does not contain a member named 'Timer1Timer' at line 153
(расшифровать бы )

2-а раза по таймеру не щелкал, объявил в вкладке events: OnTimer = Image3Click
__________________
... всегда есть чему учиться и куда стремиться...

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

Цитата:
Сообщение от osminog
пишет Errors:
'TForm1' does not contain a member named 'Timer1Timer' at line 153
(расшифровать бы )
А таймер на форме лежит?
Ответить с цитированием
  #13  
Старый 23.07.2012, 22:35
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от MiraLaklamon
А таймер на форме лежит?
лежит (((
нашел ошибку:
убрал в type строчку procedure Image3Click(Sender: TObject);
добавил туда procedure Timer1Timer(Sender: TObject);

а в свойство картинки в вкладке events OnClick=Timet1Timer

но реакция по времени нулевая, как-будто нет таймера (((
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #14  
Старый 23.07.2012, 22:42
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от osminog
лежит (((
нашел ошибку:
убрал в type строчку procedure Image3Click(Sender: TObject);
добавил туда procedure Timer1Timer(Sender: TObject);

а в свойство картинки в вкладке events OnClick=Timet1Timer

но реакция по времени нулевая, как-будто нет таймера (((
Ндя... А причём тут картинка Image3 и его событие OnClick ? Речь вроде идёт о таймере?
Ещё раз:
1) Нужно положить таймер на форму.
2) Изменить его свойство Interval на 3000 (т.е. 3 секунды)
3) Дважды щёлкнуть по таймеру - появится заготовка события - вот такая:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin

end;
4) Эту заготовку заменить на тот код который я привела.
5) Запустить программу на выполнение и наблюдать как всё нормально работает.
Ответить с цитированием
  #15  
Старый 23.07.2012, 22:52
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
По умолчанию

[quote=MiraLaklamon]Ндя... А причём тут картинка Image3 и его событие OnClick ? Речь вроде идёт о таймере?
огромное спасибо, так как Вы описали = работает!

тока есть момент, чтобы это стартовало по нажатию кнопки

... и если не трудно, расшифруйте код:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Tag:=Timer1.Tag+1;
  if Odd(Timer1.Tag) then
  begin
...
  end;
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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