Вниз
Скачать: 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-1157898698
Juri
2006-09-10 18:31
2006.10.01
Обработка ошибок при отправлении E-Mail


1-1155940453
Kos[UFO]
2006-08-19 02:34
2006.10.01
Класс объекта


2-1158215081
greengeneral
2006-09-14 10:24
2006.10.01
Счетчик


4-1148171087
parovoZZ
2006-05-21 04:24
2006.10.01
Создание линии


2-1157960470
SFproG
2006-09-11 11:41
2006.10.01
Управление сайтом на Delphi




   Наверх