Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с TrackBar и Timer одновременно [D7, WinXP]


JaspeR ©   (2006-03-06 10:25:00) 

procedure TForm1.Timer3Timer(Sender: TObject);

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


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


Locke   (2006-03-11 15:20:00) [1]

спасибо


antonn   (2006-03-11 11:15:00) [2]

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


Virgo_Style   (2006-03-11 10:47:00) [3]

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

Что происходит? Происходит вот что.
В 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, и если чуть-чуть, то ничего не делать.


Locke   (2006-03-10 16:34:00) [4]

ап хелп


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

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


Locke   (2006-03-09 11:49:00) [6]

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


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

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


Virgo_Style   (2006-03-08 22:24:00) [8]

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

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо