Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Таймер не работает


Автор: aksana 8.2.2012, 21:33
В приложении использую таймер. даже два. и вот смотрю не работает один. все кажется просто таймер активирован интервал задан  от 10 до 1500 мс меняла. в общем взяла просто каждый раз стала увеличивать значение в лейбле ну что б посмотреть когда он вообще работает. в общем вижу значения 0 потом 10, через какое то время 100 потом долго 1000.

 в обработчике таймера

form1.Label4.Caption:=inttostr(strtoint(form1.Label4.Caption)+1);

больше form1.Label4 нигде не используется. 
пока ждала что будет после 1000 меняла размер формы. когда я меняю ее размер меняется число в form1.Label4.
не трогаю форму метка не меняется. 
 второй таймер не проверяла не было еще условий для его запуска.

как же так? что может мешать выполнению таймера? 

Автор: Данкинг 8.2.2012, 21:58
Мне кажется, таймер нормально работает, просто отображается глючно.

Добавлено через 58 секунд
Ну поставь Application.ProcessMessages для верности.

Автор: aksana 8.2.2012, 22:04
да мне вообще не нужно что бы что то выводилось. просто вижу что то что должно выполняться по таймеру не выполняется. вот  и думаю почему.
до этого внимания не обращала другой таймер работал. может и были проблемы но я их не змечала а тут вообще никак.

Автор: northener 8.2.2012, 22:20
Цитата(aksana @  8.2.2012,  22:04 Найти цитируемый пост)
просто вижу что то что должно выполняться по таймеру не выполняется

Так и надо было сказать подробнее "про зто".
Ну т.е я имел в виду "надо было сказать подробнее про это "что-то". smile 

Автор: aksana 9.2.2012, 09:02
вот что в таймере сейчас

Код

form1.Label4.Caption:=inttostr(strtoint(form1.Label4.Caption)+1);


if (Quik.QuikConnected)  and (Quik.Connected) then   begin
//   memo1.Lines.Append(inttostr(int)+'_online');
  form1.Label1.Caption:='Online' ;
  form1.Label1.Color:=cllime;
  end
  else
    begin
      form1.Label1.Caption:='Offline';
      form1.Label1.Color:=clred;
       Quik.Disconnect;
       Quik.Connect;
      end; 

Автор: Gwire 9.2.2012, 18:59
Попробуйте после изменений параметров поставить form1.Label1.Invalidate или form1.Label1.Repaint.

Это Вы пытаетесь подсветить состояние соединения?
Если ("Да")
  А у объекта Quik нет callback-функций OnDisconnect, OnConnect и OnError?
  Можно их использовать.
    
   
    

Автор: aksana 13.2.2012, 12:41
как то пока ничего из вышеперечисленного не помогло(
ни Application.ProcessMessages
ни form1.Label1.Repaint
ни form1.Label1.Repaint

при этом при выполнении условий для смены цвета цвет не меняется а сообщение при тех же условиях выдается о том что произощел дисконект. 

OnConnect есть но не совсем то что нужно.

Если использую не Label а Edit то текст меняется, а цвет нет.

Автор: Чучмек 13.2.2012, 21:54
А может, просто, нужно увеличить интервал таймера?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)