![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть участок кода, отслеживающий превышение параметров:
Код:
Label87.Caption:='';//визуальный объект, содержащий пояснение ситуации if Perem[1].Tek_izm_Grad>112 then Label87.Caption:='Превышение оборотов '; if Perem[0].Tek_izm_Grad>102 then Label87.Caption:='Превышение давления'; if Perem[10].Tek_izm_Grad>995 then Label87.Caption:='Превышение температуры'; Если параметр меняется быстро (т.н. "забросы"), сообщение на экране мельтешит с бешеной скоростью и не читаемо. Можно как-то установить минимальное время отображения сообщения с минимальной переделкой кода? |
#2
|
||||
|
||||
![]() Код:
Sleep(1000) — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
![]() А разве sleep не тормозит выполнение всей программы?
То есть, сообщение то я задержу, но и остальная программа подвиснет? |
#4
|
||||
|
||||
![]() Есть два варианта:
1. Запись в буферный массив значений Perem с последующей выдачей с задержкой - возможно переполнение буфера 2. Установить стоповые флаги, - при превышении параметра блокируется последующий вывод сообщений на определенный промежуток времени - потеря данных поступающих во время задержки Самое оптимальное - отслеживать лишь предельные значения, а не весь диапазон Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
||||
|
||||
![]() если какое-то сообщение будет висеть какое-то время, то следующие сообщения могут пропадать. если организовывать стек сообщений, то после последнего какое-то время они будут еще меняться...
к решению 1 варианта: Код:
var TickCount: DWORD = 0; procedure TForm1.SetLabelText(const Text: String); begin if GetTickCount-TickCount<1000 then Exit; TickCount:=GetTickCount; Label1.Caption:=Text; end; Код:
SetLabelText(IntToStr(GetTickCount)); Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Nicolass44 (07.01.2015)
|