Задержка выполнения
Задержка выполнения
Задержка выполнения OnChange (Delphi 2)
В случае нажатия пользователем клавиши или изменении текущего элемента компонента ComboBox, вы обратите внимание на досадную задержку, возникающую при генерации события OnChange.
Так как "работа кипит", я хотел бы отреагировать на изменение ItemIndex несколько позднее, например, 100 миллисекунд спустя. Вот что у меня получилось. Созданный в Delphi2, код подходит также и для Delphi 1. На простой форме располагаем компоненты ComboBox и Label. Необходимым дополнением является вызов Application.ProcessMessages, позволяющий избежать замедления работы PC, когда очередь сообщений для формы пуста.
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
const
// Просто некоторая константа сообщения
PM_COMBOCHANGE = WM_USER + 8001;
// 500 миллисекунд
CWantedDelay = 500;
type TForm1 = class(TForm)
ComboBox1: TComboBox;
Label1: TLabel;
procedure ComboBox1Change(Sender: TObject);
private
procedure PMComboChange(var message : TMessage); message PM_COMBOCHANGE;
public
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
PostMessage(Handle, PM_COMBOCHANGE, 0, 0);
end;
procedure TForm1.PMComboChange(var message : TMessage);
const
InProc: BOOLEAN = FALSE;
StartTick: LONGINT = 0;
begin
if InProc then begin
// Обновляем стартовое время задержки
StartTick:= GetTickCount;
end else begin
// Организация цикла
InProc:= TRUE;
// Инициализация стартового времени
StartTick:= GetTickCount;
// Ожидаем истечения стартового времени.
// Пока стартовое время не исчерпалось, позволяем операционной системе обрабатывать сообщения
while GetTickCount - StartTick < CWantedDelay do Application.ProcessMessages;
// Иллюстративное приращение счетчика, задающее некоторую реальную работу обработчику события OnChange
Label1.Caption:= IntToStr(StrToIntDef(Label1.Caption, 0) + 1);
// Завершение цикла
InProc:= FALSE;
end;
end;
end.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Задержка перехода
Задержка перехода Можно сделать так, чтобы переход осуществлялся не сразу после того, как срабатывает связанное с ним событие, но с некоторой задержкой. Например, сделаем так, чтобы переход цвета фона происходил через полсекунды после того, как ссылка попала
Очереди выполнения
Очереди выполнения Основная структура данных планировщика — это очередь выполнения (runqueue). Очередь выполнения определена в файле kernel/sched.c[21] в виде структуры struct runqueue. Она представляет собой список готовых к выполнению процессов для данного процессора.Для каждого
Задержка выполнения
Задержка выполнения Часто коду ядра (особенно драйверам) необходимо задерживать выполнение действий на некоторый период времени без использования таймеров или механизма нижних половин. Это обычно необходимо для того, чтобы дать аппаратному обеспечению время на
Задержка с помощью цикла
Задержка с помощью цикла Наиболее простое для реализации (хотя обычно не оптимальное) решение — это использование задержки с помощью цикла или ожидания в состоянии занятости (busy loop, busy waiting). Эта техника работает, только если интервал времени задержки является кратным
6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ
6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ К настоящему моменту мы рассмотрели все функции работы с внутренними структурами процесса, выполняющиеся на нижнем уровне взаимодействия с процессом и обеспечивающие переход в состояние «выполнения в режиме ядра» и выход из этого состояния в
Управление уровнями выполнения
Управление уровнями выполнения В предыдущих разделах постоянно упоминались уровни выполнения, но из сказанного вряд ли стало ясно, что же они собой представляют. Говорилось лишь о том, что уровни выполнения и сценарии запуска SysV тесно связаны между собой. При загрузке
Задержка передачи звука
Задержка передачи звука Одна из самых неприятных помех во время разговора через VoIP-телефонию – это задержки сигнала, то есть вы слышите своего собеседника не сразу в тот момент, когда он говорит, а спустя некоторое время. И собеседнику ваш голос тоже приходит с
12.4. Пропускная способность и задержка
12.4. Пропускная способность и задержка Другим последствием использования быстрых процессоров является то, что производительность обычно ограничивается затратами на I/О-операции и (особенно в случае программ, использующих Internet) затратами на сетевые транзакции.
15.6. Отладка времени выполнения
15.6. Отладка времени выполнения Каждый, кто занимается программированием больше одной недели, знает, что исправление синтаксических ошибок является простой частью отладки. За ней следует сложная часть, когда необходимо разобраться, почему поведение синтаксически
12.4. Пропускная способность и задержка
12.4. Пропускная способность и задержка Другим последствием использования быстрых процессоров является то, что производительность обычно ограничивается затратами на I/O-операции и (особенно в случае программ, использующих Internet) затратами на сетевые транзакции.
Задержка с выводом средств
Задержка с выводом средств Вывод средств, полученных в результате выигрыша в интернет-казино или лотерее – еще одна лазейка, позволяющая мошенникам получать дополнительные деньги, а точнее – успешно избегать причитающихся игрокам выплат выигранных сумм.Не секрет, что
Инсталляция среды выполнения .NET
Инсталляция среды выполнения .NET Для вас не должно быть сюрпризом то, что компоновочные блоки .NET могут выполняться только на машине, на которой установлен каркас .NET Framework. Для вас, как для разработчика .NET-приложений, это не должно быть проблемой, поскольку ваша машина будет
2.1.6. Среда выполнения
2.1.6. Среда выполнения Операционная система Linux предоставляет каждой запущенной программе среду выполнения. Под средой подразумевается совокупность пар переменная-значение. Имена переменных среды и их значения являются строками. По существующему соглашению переменные
Эффект Simple Delay (Простая задержка)
Эффект Simple Delay (Простая задержка) Эффект Simple Delay (Простая задержка) позволяет применять базовые эффекты эха к звуковым фрагментам и композициям. Чтобы использовать этот эффект, нужно выполнить следующие действия.1. Выделить фрагмент аудиоданных, к которым нужно применить
Эффект Multi-Tap Delay (Многоотводная задержка)
Эффект Multi-Tap Delay (Многоотводная задержка) Функция Multi-Tap Delay (Многоотводная задержка) позволяет создавать очень сложные эффекты эха за счет установки сразу нескольких задержек, подобно одновременной установке нескольких эффектов Simple (Простое). Чтобы настроить эффект Multi-Tap
Задержка выполнения OnChange (Delphi 2)
Задержка выполнения OnChange (Delphi 2) В случае нажатия пользователем клавиши или изменении текущего элемента компонента ComboBox, вы обратите внимание на досадную задержку, возникающую при генерации события OnChange.Так как "работа кипит", я хотел бы отреагировать на изменение ItemIndex