Вниз
Скачать: CL | DM;

Трабла с TrackBar.   Найти похожие ветки 

 
ЕщеОдинКакжеНадоели   (2012-11-22 22:06) [0]

Делаю небольшую демку для работы со звуком - проигрыватель.

Есть  TrackBar, который меняет позицию воспроизведения.


procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 Track_SetPos(TrackBar1.Position);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 TrackBar1.Position:= Track_GetPos;
end;


По таймеру обновляется положение бегунка.

Но при вызове TrackBar1.Position:= Х, вызывается и TrackBar1Change,
как убрать такую зависимость?


 
kilkennycat ©   (2012-11-22 22:44) [1]

есть такая вещь, как флаги.
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
flag := false;
Track_SetPos(TrackBar1.Position);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if flag then TrackBar1.Position:= Track_GetPos;
flag := true;
end;

ну а ваще я б событийность медиплеера собственно посмотрел бы внимательно.


 
kilkennycat ©   (2012-11-22 22:46) [2]

а блин, не там условие разместил. пьяный я чуть. но смысел ясен.


 
ЕщеОдинКакжеНадоели   (2012-11-22 23:36) [3]

Чета я не понял. Я немного под стрессом.


 
TrackBarChange   (2012-11-22 23:44) [4]


> ЕщеОдинКакжеНадоели   (22.11.12 23:36) [3]
> Чета я не понял

Бросай это дело. Не твое это.


 
kilkennycat ©   (2012-11-23 00:10) [5]

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

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
 if TrackBar1.Tag = 0 then Track_SetPos(TrackBar1.Position);
 TrackBar1.Tag = 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 TrackBar1.Tag = 1;
 TrackBar1.Position:= Track_GetPos;
end;

однако, у меня возникает вопрос: че ты будешь делать, если я перемещу ползунок, а кнопку мыши не отпущу пару секунд, и снова дерну мышь?


 
ЕщеОдинКакжеНадоели   (2012-11-23 01:56) [6]


> kilkennycat ©   (23.11.12 00:10) [5]


Дай я тебя расцелую!


 
ЕщеОдинКакжеНадоели   (2012-11-23 01:57) [7]


> TrackBarChange   (22.11.12 23:44) [4]
>
>
> > ЕщеОдинКакжеНадоели   (22.11.12 23:36) [3]
> > Чета я не понял
>
> Бросай это дело. Не твое это.


Не могу, меня заставляют.
Злобные и агрессивные мужички.



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

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



Память: 0.46 MB
Время: 0.046 c
2-1329298711
ixen
2012-02-15 13:38
2013.03.22
Вопросы по потокам


3-1276674643
Hadroran
2010-06-16 11:50
2013.03.22
Построение представления


2-1330935134
Alex_C
2012-03-05 12:12
2013.03.22
Вписать рисунок в RoundRect


15-1344946625
tesseract
2012-08-14 16:17
2013.03.22
Сергей Петрович Капица


15-1339341068
Дмитрий С
2012-06-10 19:11
2013.03.22
TCP




   Наверх