2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
1

Обработчик событий PlaySound

12.10.2017, 11:54. Показов 1061. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мир вам и привет!
В обработчике клик в button1 я написал вот что читает аудио из ресурса

PlaySound( 'yak', HInstance, SND_RESOURCE or SND_ASYNC);

Вопрос как сделать что бы при нажатие на Button2 то что находится на Button1 изменился на:

PlaySound( 'du', HInstance, SND_RESOURCE or SND_ASYNC);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2017, 11:54
Ответы с готовыми решениями:

Обработчик событий
создать на форме 3 переключателя(Radiobutton)группу и метку(Label).Текст в метке любой.В результате...

Обработчик событий
Ребята, помогите, как это должно выглядеть? Замените стандартный обработчик исключительных...

Обработчик событий
Доброго времени суток уважаемые эксперты! Вообщем есть проблема, есть у меня 3 компонента типа...

Обработчик событий
Как создать событие на вставку флешки(или другого устройства)в usb?

15
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 12:03 2
Firuz,
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
begin
  PlaySound( 'yak', HInstance, SND_RESOURCE or SND_ASYNC);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  PlaySound( 'du', HInstance, SND_RESOURCE or SND_ASYNC);
end;
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
12.10.2017, 12:08  [ТС] 3
ну это ясно я хочу изменит первую процедуру при нажатие на второй кноки как это сделать ?
0
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 12:25 4
Зачем лишнее накручивать? Для решения данной задачи разумнее первого примера ничего не вижу...
Delphi
1
2
3
4
5
6
7
  procedure TForm1.Button1Click(Sender: TObject);
begin
  if TComponent(Sender).Name=Button1 then
  PlaySound( 'yak', HInstance, SND_RESOURCE or SND_ASYNC) else
  if TComponent(Sender).Name=Button2 then
  PlaySound( 'du', HInstance, SND_RESOURCE or SND_ASYNC);
end;
в конструкторе Button2.OnClick:=Button1Click

Или так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
type
  ...
    procedure PlaySnd;
  ...
 
implementation
var s:String;
 
{$R *.dfm}
 
procedure PlaySnd;
begin
  PlaySound( s, HInstance, SND_RESOURCE or SND_ASYNC);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  s:='yak';
  PlaySnd;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  s:= 'du';
  PlaySnd;
end;
Количество кода меньше, чем в первом примере, не сделать...
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
12.10.2017, 12:48  [ТС] 5
первая позиция у меня не сработал (

Добавлено через 5 минут
Цитата Сообщение от FearDog Посмотреть сообщение
Зачем лишнее накручивать? Для решения данной задачи разумнее первого примера ничего не вижу...
просто у меня на форме 30 шт Button-ов мог и поставит ещё 30 для другой команды но это будет уже в общем 90 Батнов, так как 30 аудио это на своем языке, 30 аудио на русском и 30 аудио на английском
0
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 13:08 6
Цитата Сообщение от Firuz Посмотреть сообщение
первая позиция у меня не сработал (
Писал по вашему запросу.
Насколько я помню, PlaySound проигрывает файлы wav, т.е. не
Delphi
1
PlaySound( 'yak', HInstance, SND_RESOURCE or SND_ASYNC)
а
Delphi
1
PlaySound( 'yak.wav', HInstance, SND_RESOURCE or SND_ASYNC);
и в папке с программой должны лежать данные файлы.
Цитата Сообщение от Firuz Посмотреть сообщение
просто у меня на форме 30 шт Button-ов
В любом случае для каждой кнопки нужно писать две строки - Название файла и процедуру:
Delphi
1
2
  s:='yak.wav';
  PlaySnd;
Не проще ли сразу одной строкой описать? Кнопок от этого меньше не станет:
Delphi
1
PlaySound( 'yak.wav', HInstance, SND_RESOURCE or SND_ASYNC);
Или называйте кнопки по типу 'yak.wav', 'du.wav' и для первой кнопки так:
Delphi
1
PlaySound( (Sender as TButton).Name, HInstance, SND_RESOURCE or SND_ASYNC);
А для остальных OnClick:=Button1Click

P.S.: В посту #4 в строке 11: procedure TForm1.PlaySnd;
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
12.10.2017, 13:13  [ТС] 7
PlaySound( 'yak', HInstance, SND_RESOURCE or SND_ASYNC)
тут 'yak' это индекс так что без .wav тоже работает
попробовал через процедуру procedure PlaySnd;
0
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 13:14 8
Насчет wav погорячился походу, из ресурса не воспроизводил звуки...
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
12.10.2017, 13:15  [ТС] 9
Цитата Сообщение от FearDog Посмотреть сообщение
Не проще ли сразу одной строкой описать? Кнопок от этого меньше не станет:
хочешь сказать что я должен использовать 90 компонентов Батн ?
0
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 13:20 10
Цитата Сообщение от Firuz Посмотреть сообщение
попробовал через процедуру procedure PlaySnd;
Там ошибка
Цитата Сообщение от FearDog Посмотреть сообщение
P.S.: В посту #4 в строке 11: procedure TForm1.PlaySnd;
Добавлено через 2 минуты
Цитата Сообщение от Firuz Посмотреть сообщение
хочешь сказать что я должен использовать 90 компонентов Батн ?
Ты изначально спросил:
Цитата Сообщение от Firuz Посмотреть сообщение
как сделать что бы при нажатие на Button2 то что находится на Button1 изменился на:
Если у тебя на каждый звук своя кнопка, я то что могу сделать. Мысли читать я не могу и твоими глазами видеть, что у тебя там тоже.
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
12.10.2017, 13:31  [ТС] 11
вот что надо, когда я захожу на Файл нажму на НА РУССКОМ то у 30 компонентов должны изменится звуки а если захожу обратно в Файл и жму НА АНГЛИЙСКОМ то обратное в те же компонентах
0
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 13:45 12
Видишь, как задача то поменялась.
Если
Цитата Сообщение от Firuz Посмотреть сообщение
захожу на Файл нажму на НА РУССКОМ
Это TMainMenu, то кидаешь на форму TMainMenu. У компонентов "НА РУССКОМ", "НА АНГЛИЙСКОМ" и т.д. устанавливаешь AutoCheck и RadioItem в True, а на кнопках что то типа
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.PlaySnd;
begin
  PlaySound( PChar(s), HInstance, SND_RESOURCE or SND_ASYNC);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if N2.Checked then
  s:='yak_Rus' else
  if N3.Checked then
  s:='yak_Eng';
  PlaySnd;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  if N2.Checked then
  s:='du_Rus' else
  if N3.Checked then
  s:='du_Eng';
  PlaySnd;
end;
0
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 13:47 13
Вот пример На форум.rar
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
12.10.2017, 14:11  [ТС] 14
спасибо щас попробую

Добавлено через 23 минуты
Спасибо тебе тысяче- FearDog очень выручил ! и да воздаст тебе Аллах ... и увеличит твои знание !
0
15 / 15 / 14
Регистрация: 19.08.2012
Сообщений: 105
12.10.2017, 14:34 15
Firuz, на здоровье .
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
19.06.2018, 10:06  [ТС] 16
здравствуй а можешь показать такой пример только с картинками чтобы поменяли картинки ?
0
19.06.2018, 10:06
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2018, 10:06
Помогаю со студенческими работами здесь

TListView обработчик событий
Здраствуйте есть компонент TListView с двумя колонками и энным количеством строк, а проблема в...

Обработчик событий для Enter
а где прописывать этот код в ТForm или где???? В обработчике событий OnKeyPress: procedure...

Обработчик событий прижков/падений
Всем доброго времени суток! Господа, помогите разобраться, ситуация следующая: Я пишу...

Обработчик событий для динамических кнопок
Всем доброго времени суток. Суть вопроса такая: Необходимо сделать настраиваемую систему АРМ. То...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как преобразовать список списков в простой список в Python
bytestream 22.01.2025
При работе с Python разработчики часто сталкиваются с необходимостью обработки сложных структур данных, среди которых особое место занимают вложенные списки. Эти структуры представляют собой списки,. . .
Что такое GUID / UUID и как их создать
bytestream 22.01.2025
В мире разработки программного обеспечения существует постоянная потребность в уникальной идентификации объектов, записей и ресурсов. Эта задача становится особенно актуальной в распределенных. . .
Как добавить пустую директорию в репозиторий Git
bytestream 22.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо сохранить пустую директорию в репозитории. Данная задача может показаться простой на первый. . .
Как валидировать адрес email в JavaScript
bytestream 22.01.2025
JavaScript, как основной язык веб-разработки, предоставляет разработчикам множество инструментов для реализации эффективной валидации email-адресов. От простых встроенных решений до сложных. . .
Как заменить все вхождения подстроки в JavaScript
bytestream 22.01.2025
Строки в JavaScript представляют собой неизменяемые последовательности символов, что делает их обработку особенно интересной с точки зрения оптимизации и выбора правильного подхода к решению задач. . . .
Управление версиями пакетов в Node.js. В чем разница между тильдой (~) и кареткой (^) в package.json
bytestream 22.01.2025
В современной разработке программного обеспечения управление версиями пакетов играет ключевую роль в обеспечении стабильности и надежности проектов. Node. js, как одна из самых популярных платформ для. . .
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru