Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
 Аватар для Ecio
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 85

Как сделать из Image кнопку, которая будет воспроизводить аудиофайл

24.05.2012, 13:31. Показов 3736. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Какие компоненты помимо Image нужны для этого?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2012, 13:31
Ответы с готовыми решениями:

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

Как нв листе экселя сделать кнопку которая будет запускать форму?
Здравствуйте. Сделал форму в VBA в экселе, когда запускаю эксель, приходится заходить в VBA и там уже запускать форму. Как сделать кнопку...

Вместо ссылки как-то сделать кнопку, которая будет открывать YouTube на сайте
В вот эту программку: <!DOCTYPE html> <html> <head> <title>My first HTML page</title> </head> <body> ...

26
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
24.05.2012, 15:15
Студворк — интернет-сервис помощи студентам
MCISendString()

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses mmsystem;
...
 
procedure TForm1.Image1Click(Sender: TObject);
begin 
 MCISendString(PChar('play ' + 'tuz.wav' {'tuz.mp3'}{'tuz.mid'}{'tuz.kar'}),nil,0,0) 
end;
 
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 with (sender as timage) do top:= top-1
end;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 with (sender as timage) do top:= top+1
end;
...при использовании нескольких TImage, для имитации нажатия лишь назначаем общие единые события для Image1MouseUp() и Image1MouseDown(). Смысл ясен?
1
 Аватар для Санек25
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
24.05.2012, 15:19
MediaPlayer 1.stop; //остановить проигрывание файла если уже какой-то играет
MediaPlayer 1.close;
MediaPlayer 1.filename:='c:\.....\песня.mp3'; //присвоили имя
MediaPlayer 1.open;//потом открыли
MediaPlayer 1.play;//поменяй порядок строк
1
 Аватар для Ecio
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 85
24.05.2012, 16:18  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
MCISendString()

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses mmsystem;
...
 
procedure TForm1.Image1Click(Sender: TObject);
begin 
 MCISendString(PChar('play ' + 'tuz.wav' {'tuz.mp3'}{'tuz.mid'}{'tuz.kar'}),nil,0,0) 
end;
 
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 with (sender as timage) do top:= top-1
end;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 with (sender as timage) do top:= top+1
end;
...при использовании нескольких TImage, для имитации нажатия лишь назначаем общие единые события для Image1MouseUp() и Image1MouseDown(). Смысл ясен?
Не совсем понял, это при нажатии на любой Image будет воспроизводиться этот файл?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
24.05.2012, 16:26
...нет, это для имитации нажатия (не клика, а нажатия и отпускания - смещение картинки вниз-вверх) для многих TImage будет использовано всего две процедуры. Для того, чтобы в одной процедуре Image1.OnClick() отрабатывать и определять клики ото всех имейджев, можно назначить каждому TImage свой TAG (свойство такое) и делать так, к примеру:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Image1Click(Sender: TObject);
begin 
 case (sender as timage).tag of
  0: MCISendString(PChar('play ' + 'tuz.wav'),nil,0,0);
  1: MCISendString(PChar('play ' + 'baz.mp3'),nil,0,0);
  2: MCISendString(PChar('play ' + 'mur.wav'),nil,0,0);
  3: MCISendString(PChar('play ' + 'may.mp3'),nil,0,0);
 end 
end;
...вообще, вариантов масса. Можете конечно и сделать на каждый tImage свой персональный клик. Cмысл ясен?
0
 Аватар для HanDi
898 / 345 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
24.05.2012, 16:27
Delphi
1
uses mmsystem;
На событие onlick картинки:

Delphi
1
SndPlaySound('music.wav', SND_ASYNC);
И не нужно парится.
0
 Аватар для Ecio
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 85
24.05.2012, 16:31  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
...нет, это для имитации нажатия (не клика, а нажатия и отпускания - смещение картинки вниз-вверх) для многих TImage будет использовано всего две процедуры. Для того, чтобы в одной процедуре Image1.OnClick() отрабатывать и определять клики ото всех имейджев, можно назначить каждому TImage свой TAG (свойство такое) и делать так, к примеру:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Image1Click(Sender: TObject);
begin 
 case (sender as timage).tag of
  0: MCISendString(PChar('play ' + 'tuz.wav'),nil,0,0);
  1: MCISendString(PChar('play ' + 'baz.mp3'),nil,0,0);
  2: MCISendString(PChar('play ' + 'mur.wav'),nil,0,0);
  3: MCISendString(PChar('play ' + 'may.mp3'),nil,0,0);
 end 
end;
...вообще, вариантов масса. Можете конечно и сделать на каждый tImage свой персональный клик. Cмысл ясен?
ясен!Спасибо!
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
24.05.2012, 16:33
SndPlaySound
...рекомендовал-бы все же MCISendString() по части форматов. Нет, конечно мне ближе всего технология DirectSound, но для новичков вызовы MCISendString() самое оно. TMediaPlayer же - есть обертка над ними (MCI).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2012, 16:33

Как на языке LAD сделать кнопку, которая будет включать катушку только после 2 нажатий
Как на языке LAD сделать кнопку, которая будет включать катушку только после 2 нажатий, т.е. 0-1-0-1, задумка такая, что у меня в квартире...

Как сделать вместо стандартной кнопки submit в форме свою кнопку которая будет отправлять форму?!
Подскажите как сделать вместо стандартной кнопки submit в форме свою графическую кнопку которая будет отправлять данные из формы.

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

Сделать кнопку, которая будет не отвечать на нажатие без свойства Enabled?
Можно ли каким-то образом сделать кнопку, которая будет не отвечать на нажатие без св-ва Enable?

Сделать кнопку, которая при перемещении по DbGrid будет активна, если присутствуют записи
Я хочу сделать свою кнопку как в DBNavigation, чтобы при перемещении по DBGrid кнопка была активна, если присутствуют записи. Как это...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru