![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Проблема такая:
Image1.Show PlaySound('click1',h11,SND_Pesourse) //Проигрываем звук из ресурса Image1.Hide Картинка не появляется , Если убрать Image1.Hide Картинка появляется после проигрывания звука . Как это побороть? Нужно Показывать картинку пока проигрывается звук. Заранее спасибо. |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Только через внешнюю активацию, вот пример через таймер:
Причем конструкция должна быть именно такая. Почему? Не вникал, видать он блокирует св-во Visible. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Cделай так:
Image1.Show Image1.Refresh; // или Update PlaySound('click1',h11,SND_Pesourse) //Проигрываем звук из ресурса Image1.Hide -------------------- С уважением, г-н Посол. |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
p0s0l это было первое, что я попробовал, он тогда мегает, картинкой, на секунду и исчезает.
PS кстати, прикольно он (image) не виден, но Visible = true, смотри:
но музыка играет. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
попробуй так:
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
<Spawn> неужели так трудно проверить перед тем как обнародовать?
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Странно, Cashey, что у меня с Refresh'oм или Update'ом почему-то без миганий...
Кстати, ты вместо PlaySound используешь медиаплаер... PlaySound - синхронный, а MediaPlayer ? Никогда им не пользовался... Щас попробую. Если он асинхронный, то тогда понятное дело, картинка мигнет на долю секунды и обратно исчезнет... -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Ну да, так и есть - MediaPlayer асинхронный. Из-за этого у тебя картинка и исчезает сразу,Cashey...
А способ <Spawn>'а тоже рабочий. Так что, Cashey, будь внимательнее в следующий раз. Если бы в PlaySound стоял флаг SND_ASYNC, тогда бы можно было вместо PlaySound'а использовать MediaPlayer. Или же надо дожидаться, пока проиграется звук на MediaPlayer'е, а потом уже делать Hide... -------------------- С уважением, г-н Посол. |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
А что за PlaySound такой? Я хелп посмотрел, но там даже не сказано в каком он модуле сидит.
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Так ладно разобрался она из модуля mmsystem. И при флаге SND_ASYNC мигает так же как MediaPlayer (и работает только через внешний рефреш), а при флаге SND_SYNC работают все три способа (согласен был не прав), но прервать выполнение звука не удается, конструкцию
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
p0s0l |
|
||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Длинная - недлинная, какая разница. SlaUr'у нужно проиграть ПОЛНОСТЬЮ звук, а потом уже скрыть картинку.
А зачем ему останавливать звук ? Если нужно останавливать звук, то тогда надо ставить SND_ASYNC. А если звук длинный и неохото, чтобы из-за этого работа проги останавливалась, то можно сделать что-то типа:
А вызывать проигрывание будет так:
-------------------- С уважением, г-н Посол. |
||||||
|
|||||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Возможно я не правильно понял задачу, но так как ее понял я, следует, что требуется показать какой-то image (например, фото исполнителя), во время проигрывания звука (например, mp3). Только где сказано, что звук должен проигрываться обязательно полностью?. Конечно, p0s0l прав, можно поставить это дело на поток, я сам так хотел зделать, но мне показалось, что вызвать через таймер более рационально с точки зрения производительности. IMHO лучше стараться избегать потоков, там где это возможно. Но повторяю - это мое мнение и оно не обязательно справедливо.
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Spawn:
Image1.Show; Application.ProcessMessages; PlaySound('click1',h11,SND_Pesourse); //Проигрываем звук из ресурса Image1.Hide; Спасибо,это то что нужно p.s. А как работает Application.ProcessMessages (может еще можно где-нибудь использовать) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |