Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизКак организовать задержку (стандартный таймер) сделал так: Найти похожие ветки
← →
JTAG (2005-03-01 13:10) [0]--- функция реакции на события
procedure TForm1.Timer1Timer(Sender: TObject);
begin
intoccurstimer1:=1;
end;
--- функция задержки
procedure delay_timer1 (delay:integer);
var a:integer;
begin
form1.timer1.Interval:= delay;
form1.timer1.enabled:= true;
while (intoccurstimer1=0) do a:=1; --выполняю до тех пор пока не возникнет intoccurstimer1
form1.timer1.enabled:= false;
intoccurstimer1:=0;
end;
--- Основная прога
procedure TForm1.Button13Click(Sender: TObject);
begin
intoccurstimer1:=0;
while (1=1) do
begin
Memo3.Lines.Append("test");
delay_timer1(100);
end;
end;
Че-то не работает
В чем ошибка не могу понять
← →
Юрий Зотов © (2005-03-01 13:17) [1]Цикл
while (intoccurstimer1=0) do a:=1;
грузит CPU на 100% и сообщения от таймера не обрабатываются. Поэтому intoccurstimer1 единицей не становится и получаем бесконечный цикл.
Измените так:
while (intoccurstimer1=0) do Application.ProcessMessages;
А если задержки маленькие, то можно все это вообще выкинуть (вместе с таймером) и использовать просто Sleep.
← →
JTAG (2005-03-01 13:29) [2]Спасибо! здорово, мне задержки от 10мили сек до 100 примерно нужны. Sleep мне поможет?
← →
Anatoly Podgoretsky © (2005-03-01 13:40) [3]Поможет.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.034 c