Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Вниз

TTrackBar   Найти похожие ветки 

 
anod   (2002-07-28 16:32) [0]

Здраствуйте, у меня такой вопрос:
На форме лежит TTrackBar, проигрывается музыка. Как мне реализвать прокрутку песни? Событие onChange не подходит, так как в OnTimer ему присваевывается нужная позиция, вызывая тем самым это событие. Подкинте идейку.


 
TTCustomDelphiMaster   (2002-07-28 16:58) [1]

Введите переменную - флаг.
При изменении позиции в OnTimer включайте флаг.
В обработчике onChange проверяйте если флаг включен значит изменение произошло от таймера, если нет - то по другим причинам. После этого флаг следует сбросить.


 
Юрий Зотов   (2002-07-28 17:05) [2]

Именно событие OnChange как раз для этого и подходит. А чтобы не было рекурсии, сделайте так:

procedure Timer1OnTimer(Sender: TObject);
begin
TrackBar1.OnChange := nil;
try
TrackBar1.Position := MediaPlayer1.Position
finally
TrackBar1.OnChange := TrackBar1Change
end
end;

procedure TrackBar1Change(Sender: TObject);
begin
MediaPlayer1.Position := TrackBar1.Position
end;


 
anod   (2002-07-28 17:36) [3]

Спасибо, попробую.


 
anod   (2002-07-28 17:45) [4]

2Юрий Зотов
Ваш пример не заработал:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
pos:=BASS_ChannelGetPosition(stream);
Gauge.OnChange := nil;
try
Gauge.Position:=Trunc(BASS_ChannelBytes2Seconds(stream,pos));
finally
Gauge.OnChange := gaugeChange;
end;
end;

procedure TForm1.gaugeChange(Sender: TObject);
begin
BASS_ChannelSetPosition(stream, Gauge.Position);
end;


2TTCustomDelphiMaster
А когда влаг должен выключатся???


 
Юрий Зотов   (2002-07-28 17:57) [5]

Этот пример может не работать только в том случае, если не работает ВАШ код или не назначены обработчики событий. Других вариантов нет.

И если он не работает, то не заработает и способ с флагом.


 
TTCustomDelphiMaster   (2002-07-28 18:10) [6]

Юрий Зотов © (28.07.02 17:05)
Не должно работать, т.к. событие будет обрабатываться после выхода из onTimer.


> anod © (28.07.02 17:45)
> 2Юрий Зотов
> Ваш пример не заработал:


Попробуй так
procedure TForm1.Timer1Timer(Sender: TObject);
begin
pos:=BASS_ChannelGetPosition(stream);
Gauge.OnChange := nil;
try
Gauge.Position:=Trunc(BASS_ChannelBytes2Seconds(stream,pos));
finally
Application.ProcessMessages;
Gauge.OnChange := gaugeChange;
end;
end;
может что нибудь получиться.


> 2TTCustomDelphiMaster
> А когда влаг должен выключатся???


В последней строчке procedure TForm1.gaugeChange(Sender: TObject);


 
anod   (2002-07-28 18:22) [7]

Извините, и то и тот способ работает - все дело в коде

Gauge.Position:=Trunc( BASS_ChannelBytes2Seconds(stream,pos));

BASS_ChannelSetPosition(stream, Gauge.Position);


 
TTCustomDelphiMaster   (2002-07-28 18:56) [8]


> TTCustomDelphiMaster © (28.07.02 18:10)
> Юрий Зотов © (28.07.02 17:05)
> Не должно работать, т.к. событие будет обрабатываться после
> выхода из onTimer.


Да... что-то я не то ляпнул. Прошу написанное считать "бредом сивой кобылы".


 
Юрий Зотов   (2002-07-28 19:10) [9]

Ну, слава Богу, все разобрались. Всегда бы так...



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

Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-24046
Kviz
2002-07-25 20:06
2002.08.08
Народ, ПОМОГИТЕ!!! Как узнать какие параметры при запуске проге были заданы и присвоить их все в строковую переменную. Ну, типа прога наша “delphi.exe”, юзверь его запустит “delphi.exe rulez, rulez and rulez” мне нужно, чтобы прога переменной “s” пр


8-24133
Di_wind
2002-03-30 22:57
2002.08.08
Распознование голоса.


14-24216
Polox
2002-07-14 09:26
2002.08.08
Где взять исходники...


14-24193
Loops
2002-07-13 01:27
2002.08.08
Работа на лето


1-24047
xyz
2002-07-25 00:29
2002.08.08
слова в RichEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский