Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

Проблема с TrackBar и Timer одновременно   Найти похожие ветки 

 
JaspeR ©   (2006-03-06 10:25) [0]

procedure TForm1.Timer3Timer(Sender: TObject);

begin
if mediaplayer1.FileName<>"" then
begin
trackbar2.Position:=mediaplayer1.Position;
label4.Caption:= floattostrf(100/mediaplayer1.Length*mediaplayer1.Position,ffFixed,0,0);
end;
end;


как вы поняли, это регулятор положения.
Только с ним воспроизведение тормозит!!!
как сделать, чтоб не тормозило???


 
Locke ©   (2006-03-08 00:46) [1]

та же фигня ,кто поможет?


 
Virgo_Style ©   (2006-03-08 22:24) [2]

*телепатирует*

а в TrackBar2.OnChange у вас, наверное, MediaPlayer1.Position := TrackBar2.Position, да?


 
x.pro   (2006-03-09 08:06) [3]

я тоже на такие грабли натыкался когда был молод :) и скорее всего Virgo_Style прав.


 
Locke ©   (2006-03-09 11:49) [4]

да именно так)) подскажите как изменить??


 
Locke ©   (2006-03-10 00:53) [5]

падскажите как исправить проблему)


 
Locke ©   (2006-03-10 16:34) [6]

ап хелп


 
Virgo_Style ©   (2006-03-11 10:47) [7]

Шли годы. Смеркалось (с).

Что происходит? Происходит вот что.
В Timer3Timer происходит смещение TrackBar2, поэтому вызывается
TrackBar2.OnChange, которая, в свою очередь, меняет MediaPlayer.Position.

Перемотка же - процесс небыстрый, отсюда тормоза.

Что надо сделать? Очевидно, надо сделать так, чтобы при изменении TrackBar.Position в TimerTimer не изменялся MediaPlayer.Position.

Как?
Вариант номер раз: ввести флажок, напр. IgnoreTrackChange, и перед изменением TrackBar.Position выставлять его в True; а в TrackBar.OnChange, если флажок взведен (true) - сбрасывать его, и ничего больше не делать.

Вариант номер два: перед изменением TrackBar.Position делать TrackBar.OnChange:=nil;, а после - TrackBar.OnChange:=TrackBarOnChange;

Вариант номер 3, за работоспособность не ручаюсь - проверять в TrackBar.OnChange, насколько сильно отличаются Position, и если чуть-чуть, то ничего не делать.


 
antonn ©   (2006-03-11 11:15) [8]

или использовать другой "ползунок", например TSlider (slider.pas, в инете должен быть), у него раздельные события перетаскивания и перемещения


 
Locke ©   (2006-03-11 15:20) [9]

спасибо



Страницы: 1 вся ветка

Текущий архив: 2006.10.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
2-1158216030
абабаба
2006-09-14 10:40
2006.10.01
скопировать строку в массив


2-1157981853
Jager
2006-09-11 17:37
2006.10.01
Как работать к LPT портом?


2-1157718051
drashka
2006-09-08 16:20
2006.10.01
Incompatible types: TBasicAction and TCloseAction


4-1148825708
chizra
2006-05-28 18:15
2006.10.01
Как узнать позицию указателя открытого средствами API файла?


2-1158064267
RagapuK
2006-09-12 16:31
2006.10.01
DLL+Delphi