Помощь - Поиск - Пользователи - Календарь
Полная версия: Задержка
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Koresh
Есть sleep(); но с ним программа как бы зависает. Я эту процедуру в цикле использую. Есть что-либо подобное sleep'a? Или как-то по другому надо ее использовать?
hiv
Цитата(Koresh @ 24.11.2006 17:00) *
Есть sleep(); но с ним программа как бы зависает. Я эту процедуру в цикле использую.
И правильно делает. Ведь эта команда так и переводится. При этом другие процессы и нити могут дальше работать пока твоя программа "спит".
Цитата(Koresh @ 24.11.2006 17:00) *

Есть что-либо подобное sleep'a? Или как-то по другому надо ее использовать?
Есть: делать sleep в параллельно выполняющейся нити TThread, тогда твоя программа "основной процесс" будет жива и откликаться. smile.gif
Koresh
procedure TForm1.MFileMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
var i:integer;
begin
form1.Canvas.Pen.Color:=clred;
for i:=0 to 99 do
begin;
sleep(1);
form1.Canvas.MoveTo(50,i+50);
form1.Canvas.LineTo(100,i+50);
end;
end;

procedure TFile.CMMouseLeave(var msg: TMessage);
var i:integer;
begin
inherited;
form1.Canvas.Pen.Color:=clBtnFace;
for i:=99 downto 0 do
begin;
sleep(1);
form1.Canvas.MoveTo(50,i+50);
form1.Canvas.LineTo(100,i+50);
end;
end;

Две процедуры: одна при наведении, другая при отведении... Куда этот sleep поставить... я с TThread не понял smile.gif
hiv
А здесь и не надо TThread. 1 милисекунда для отбражения окон - ерунда.
Koresh
Цитата(hiv @ 24.11.2006 22:11) *

А здесь и не надо TThread. 1 милисекунда для отбражения окон - ерунда.

Это у меня что-то типо попап меню, если без этой одной милисекунды, то оно моментально выскочит, а мне надо, чтоб с задержкой и без лагов... Объясните что за TThread и как его использовать, очень уж надо sad.gif
hiv
Цитата(Koresh @ 24.11.2006 18:24) *
Объясните что за TThread и как его использовать, очень уж надо sad.gif

Рекомендуем загрузить DRKB (см. выше)
Win32 многозадачная среда - TThread позволяет этим пользоваться.
ЗЫ: какие могут быть лаги за 1 млсек
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.