Форум: "Основная";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
Внизтакой вот нехитрый вопросик... Найти похожие ветки
← →
reticon (2003-03-11 23:01) [0]Уважаемые мастера помогите пожалуйст. Сделал я значит одну программку, в которой с помощью компонента
ТМедиаПлеер проигрывается AVI-файл. При создании формы начинает проигрываться видео, а при нажатии на пробел активируется таймер, обработчик которого следующий:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Gauge1.Progress:=Gauge1.Progress + 1;
if Gauge1.Progress = 100 then
begin
Sleep(1000);
Gauge1.Visible:=false;
Timer1.Enabled:=false;
Gauge1.Progress:=0;
end;
end;
Так вот, на компе с конфигурацией Celeron-1700, 650 ОЗУ,
GeForce-4 64МБ все идет прекрасно без тормозов, а на других компах (с конфигурацией в два раза хуже), при активировании таймера начинаются тормоза (пока timer.active = false видео проигрывается без тормозов). Как избежать этого и возможно ли такое, ведь вроде ничего такого нет сильно зависящего от аппаратной конфигурации компа? Заранее благодарен.
← →
MAN-In-RED (2003-03-11 23:03) [1]
> Sleep(1000);
Это плохая бяка...
А от плохих бяк надо избавлятся...
← →
reticon (2003-03-11 23:05) [2]А как избавиться если мне нужна задержка в 1 сек. Может тогда чем-нить заменить?
← →
MAN-In-RED (2003-03-11 23:07) [3]А интервал у таймера какой?
← →
reticon (2003-03-11 23:12) [4]Интервал равен 30
← →
MAN-In-RED (2003-03-11 23:18) [5]
procedure Delay(Value: Cardinal);
var
F,
N :Cardinal;
begin
N := 0;
while N<=(Value div 10) do
begin
SleepEx(1,True);
Application.ProcessMessages;
Inc(N);
end;
F := GetTickCount;
repeat
Application.ProcessMessages;
N := GetTickCount;
until (N-F>=(Value mod 10)) or (N<F);
end;
Delay(1000); //Задержка на одну секунду
← →
MAN-In-RED (2003-03-11 23:19) [6]И интервал таймеру ставь минимум 50
← →
MAN-In-RED (2003-03-11 23:31) [7]А можно проще:
if Timer1.Interval=1000 then
ProgressBar1.Hide
else
begin
ProgressBar1.Position := ProgressBar1.Position+1;
if ProgressBar1.Position=100 then
Timer1.Interval := 1000
else
Timer1.Interval := 1;
end;
Типа того...
← →
reticon (2003-03-11 23:38) [8]Спасибо. Завтра проверю на другой машине - скажу как работает
← →
reticon (2003-03-12 12:25) [9]нифига таймер, задержка тут не причем - тормозит только видео
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c