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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 23.07.2012, 23:18
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

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

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

... и если не трудно, расшифруйте код:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Tag:=Timer1.Tag+1;
  if Odd(Timer1.Tag) then
  begin
...
  end;
У любого компонента есть свойство Tag типа Integer, которое можно использовать для собственных нужд. В данном случае при каждом срабатывании события таймера (т.е. каждые 3 секунды) это свойство увеличивается на 1 и потом проверяется - если оно нечётное то проверяется запущена ли служба А1, иначе (т.е. если чётное) проверяется запущена ли служба А2.
Но это был просто пример, в реальных программах лучше для этого объявлять переменную-поле у формы.
А чтобы стартовало по кнопке - в событии OnClick кнопки можно написать так:
Код:
  Timer1.Enabled:=not Timer1.Enabled;
Тогда каждое нажатие кнопки будет то включать, то выключать таймер.

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

Опишите, еще, кто знает, запуск таймера по кнопке (картинке) относительно этой темы! Заранее, спасибо!
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #18  
Старый 25.07.2012, 23:34
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от osminog
Опишите, еще, кто знает, запуск таймера по кнопке (картинке) относительно этой темы! Заранее, спасибо!
В сообщениях выше уже всё описано. Куда уж больше описывать то?
Таймер запускается если его свойство Enabled установить в True.
Выделяешь мышкой кнопку (картинку), в инспекторе объектов выбираешь закладку Events выбираешь нужное событие (OnClick например) и дважды щёлкаешь в поле справа от него - появится заготовка обработчика события - вот сюда и вписывай всё что должно произойти по этому событию, например устанавливай в свойство Enabled таймера True чтобы запустить его.
Но лучше прочитай какую-нибудь книгу по Delphi, потому что вопрос настолько "детский", всё равно что спросить "Как пользоваться погремушкой?"
Ответить с цитированием
  #19  
Старый 14.08.2012, 09:37
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от MiraLaklamon
А что значит "чтобы м/у службами А1 и А2 прошло 3-5 секунд"
службы запускаються должны с промежутком в 5 секунд! если их сразу вместе запускать = то они висят и не запускаются, поэтому нужно, чтобы стортовала сначала одна служба (получить ответ), затем вторая...
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #20  
Старый 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. Запускаешь вторую службу
Ответить с цитированием
  #21  
Старый 14.08.2012, 21:46
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от poli-smen
3. В обработчике события таймера (OnTimer):
  1. Отключаешь таймер:
    Код:
    Timer1.Enabled := False;
  2. Запускаешь вторую службу
И таймер благополучно отключается сразу после запуска.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #22  
Старый 15.08.2012, 02:14
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от angvelem
И таймер благополучно отключается сразу после запуска.
Ну это я отвечал на частный вопрос: "Как запустить службы с промежутком 5 секунд" и конечно же этот таймер не имеет отношения к тому таймеру который 3-5 секунд проверяет запущены ли службы
Ответить с цитированием
  #23  
Старый 16.08.2012, 22:43
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Цитата:
"Как запустить службы с промежутком 5 секунд"
зачем плодить таймеры?
CreateProcess() и WaitFoSingleObject() ведь никто не отменял
как запустить и подождать
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #24  
Старый 17.08.2012, 01:52
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от cotseec
Цитата:
"Как запустить службы с промежутком 5 секунд"
зачем плодить таймеры?
CreateProcess() и WaitFoSingleObject() ведь никто не отменял
как запустить и подождать
А какое отношение CreateProcess имеет к запуску служб?
Ответить с цитированием
  #25  
Старый 17.08.2012, 22:00
Аватар для osminog
osminog osminog вне форума
Прохожий
 
Регистрация: 13.11.2009
Адрес: Россия
Сообщения: 19
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от cotseec
зачем плодить таймеры?
CreateProcess() и WaitFoSingleObject() ведь никто не отменял
как запустить и подождать

таймеры долой!

а вот это Sleep(5000); = не работает для выполнения последующих команд! (((
__________________
... всегда есть чему учиться и куда стремиться...
Ответить с цитированием
  #26  
Старый 17.08.2012, 22:11
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Добавь ProcessMessages.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #27  
Старый 17.08.2012, 22:13
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Цитата:
Сообщение от poli-smen
А какое отношение CreateProcess имеет к запуску служб?
к службам - никакого ошибочка вышла, службы - это OpenService и StartService

вопрос к ТС: а как вы запускаете ваши службы?
вы все еще запускаете? тогда мы идеи к вам (с)
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter