Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
2-1158090623
Murava
2006-09-12 23:50
2006.10.01
PostMessage(<окно>, wm_LButtonDown, 0, <координаты>)-не пашит :(


15-1157540820
Гарри Поттер
2006-09-06 15:07
2006.10.01
Мост в Екатеринбурге. Моя версия :)


2-1158134125
ANB
2006-09-13 11:55
2006.10.01
class и object


15-1158086887
1519
2006-09-12 22:48
2006.10.01
Меню пуск


8-1142090760
Endor
2006-03-11 18:26
2006.10.01
OGG, WMA




   Наверх