![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Необходимо сделать тест, показывает десять картинок и в это время играет один звук и нужно выбрать нужную картинку ( например картинка машины и рев двигателя). Звуков соответсвенно тоже 10, для каждой картинки, что бы все картинку угадать. Загрузил картинки в массив и на форму. Звуки так, же.
pic:array[1..10] of TImage; snd:array[1..10] of integer; //Беру по порядку пути к файлам mp3 и проигрываю. Вот как мне сравнивать картинку и звук, что бы сделать тест. Необходимо получаеться вводить дополнительные индефикаторы, но я не разберусь( Последний раз редактировалось kriv0y, 26.02.2011 в 18:43. |
#2
|
|||
|
|||
![]() Ну например в начале проигрывания звука заносишь номер звука в переменную i, а при нажатии сравниваешь
Код:
if Select = i then showmessage('Yeah, it's right') else showmessage('Try again') "Никаких сиплюсплюс тут у меня!" (с)
|
#3
|
|||
|
|||
![]() да, это я могу, но как мне индификатор повесить на картинки image1.Picture; ведь они у меня в таком массиве p:array[1..10] of TImage; А я не могу сравнивать число или строку с картинкой которую беру из массива.
|
#4
|
|||
|
|||
![]() Цитата:
У тебя есть индекс. Надо что бы по порядку зауки и картинки в массивах совпадали. Когда выводишь (загружаешь) картинки, то их индексы можно положить в свойство Tag (оно для того и сделано). Соответсвенно, выбираешь случайным образом индекс, по нему проигрываешь звук, далее юзер кликает по картинке и ты просто сравниваешь значение индекса с записанным в Tag значением. Совпадает - угадал. |
#5
|
|||
|
|||
![]() Цитата:
Спасибо! Это весьма исчерпывающий ответ для меня. Не могли бы вы помочь еще в процедуре проигрывания звука, у меня пока по клику на картинке отображает сообщение Yes/No хотелось бы что бы проигрывался звук вместо сообщения. Но как вставить не пойму, ведь в цикле может быть только одна процедура, а для проигрывания и откртия файла их три, примерно таких mediaplayer1.FileName:=file.mp3; MediaPlayer1.Open; MediaPlayer1.Play; А это моё событие при клике на картинку Код:
procedure TForm7.Image12Click(Sender: TObject); begin if image12.Tag=y then ShowMessage('Yes') else ShowMessage('NO '); |
#6
|
|||
|
|||
![]() begin end...
"Никаких сиплюсплюс тут у меня!" (с)
|
#7
|
|||
|
|||
![]() естественно я непонял*(
|
#8
|
||||
|
||||
![]() Цитата:
![]() Код:
if image12.Tag=y then begin Mediaplayer1.FileName:='file.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end else begin Mediaplayer1.FileName:='file2.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end; А вообще тут несколько не обязательно: Код:
if image12.Tag=y then Mediaplayer1.FileName:='file.mp3' else Mediaplayer1.FileName:='file2.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
![]() Действительно! Спасибо! Я тут всех уже конечно достал тупостью, но вот самый последний вопрос, в котором я проигрывааю звуки из массива S в котором по порядку пути к файлам с:\1.mp3 , с:\1.mp3 с задержкой таймера. Но когда доходи до последнего звука, то показывает ошибку
![]() Цитата:
|
#10
|
||||
|
||||
![]() Цитата:
b>10? нет. inc(b) - b=11 mediaplayer1.FileName:=S[11]; Я так понимаю, что в массиве S всего 10 элементов? ![]() если я верно все понял, то надо наоборот: Код:
procedure TForm7.Timer1Timer(Sender: TObject); begin inc(b); if b>10 then begin MediaPlayer1.stop; Timer1.Enabled:=false; // отключаем таймер чтобы больше не вызывалась эта процедура b:=0; // на всякий случай (т.е. на будущее) end else begin mediaplayer1.FileName:=S[b]; MediaPlayer1.Open; MediaPlayer1.Play; end; end; jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 27.02.2011 в 01:25. |
#11
|
|||
|
|||
![]() Спасибо всем большое!
|