| 
| 
 | Вопрос # 3 126/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Помогите пожалуйста.Где ошибка?
 procedure TForm1.TrackBar1Change(Sender: TObject);
 begin
 volume := $FFFF * (TrackBar1.Max - TrackBar1.Position);
 volume :=  volume + (volume shl 16);
 WaveOutSetVolume(WAVE_MAPPER,volume);
 end;
 end.
 Работает просто как выключатель ,т е как положено в нижнем положении звука нет.Сдвигаю на одно положение - звук появляется но остальные 8 полжений остается на одинаковом уровне
 
|  |   Вопрос задал: igoriy (статус: Посетитель)Вопрос отправлен: 26 августа 2009, 18:38
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 15; последнее сообщение — 27 августа 2009, 17:26; участников в обсуждении: 5. 
|   | min@y™ (статус: Доктор наук), 26 августа 2009, 19:07 [#1]:А ты справку по этой функции читал? Там много интересного. Старшее слово - это уровень правого канала, младшее - левого. А теперь посмотри, что за бред у тебя получается в результате операций
 
 volume := $FFFF * (TrackBar1.Max - TrackBar1.Position);
volume := volume + (volume shl 16);Громкость каждого канала варьируется от $0000 до $FFFF. Признавайся, где скопипастил код? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 26 августа 2009, 19:11 [#2]:Попробуй вместо 
 volume := $FFFF * (TrackBar1.Max - TrackBar1.Position);написать 
 volume := Round($FFFF * (TrackBar1.Position / TrackBar1.Max)); Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | igoriy (статус: Посетитель), 26 августа 2009, 19:22 [#3]:Громкость каждого канала варьируется от $0000 до $FFFF. Признавайся, где скопипастил код? Так не где а из учебника того же Культина С которым вчера то же обращался Я ж пытаюсь учиться а если он изначально такому учит то я уж не знаю что и делать |  
|   | igoriy (статус: Посетитель), 26 августа 2009, 19:31 [#4]:Поменял строку volume := $FFFF * (TrackBar1.Max - TrackBar1.Position); на volume := Round($FFFF * (TrackBar1.Position / TrackBar1.Max)); И при запуске из Delphi получил вот что: Debugger detected - please close it down and restart!
 Windows NT users: Please note that having the Winlce/Softlce service Installed means that you are running a debugger!
 |  
|   | Вадим К (статус: Академик), 26 августа 2009, 19:42 [#5]:Это глюк винды. хотя может быть какого то из кодеков звука/видео. Сам натыкался на это. Mediaplayer или Bass.dll? у меня с медиаплеером воспроизводилось.
 Галочка "подтверждения прочтения" - вселенское зло. |  26 августа 2009, 19:47: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Мультимедийные приложения модератором Ерёмин А.А. Причина: работаем со звуком. 
|   | igoriy (статус: Посетитель), 26 августа 2009, 19:54 [#6]:Перезагрузился и все нормально стало.Именно в Mediaplayer выскакивало.так вот строку поменял- все заработало только наоборот сверху-вниз увеличивается громкость |  
|   | igoriy (статус: Посетитель), 26 августа 2009, 19:56 [#7]:А еще объясните пожалуйста понятие - старшее слово и младшее, а то что-то я этой книге все меньше доверяю |  
|   | Вадим К (статус: Академик), 26 августа 2009, 21:10 [#8]:в переменной Integer (для 32битных систем) 4 байта или 2 слова (одно слово - два байта). левое слово называется старшим, правое - младшим. ничего сверхъестественного. другими словами, первые 16 бит записи будут старшим словом, следующие 16 бит - младшим.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Amidamaru (статус: 4-ый класс), 26 августа 2009, 21:22 [#9]:Вместо volume := volume + (volume shl 16);
 помоему проще и удобнее использовать MakeLong:
 volume := MakeLong(volume,volume);
 или вообще без этой строчки:
 WaveOutSetVolume(WAVE_MAPPER,MakeLong(volume,volume));
 |  
|   | igoriy (статус: Посетитель), 27 августа 2009, 11:48 [#10]:Большое всем спасибо!!! |  
|   | min@y™ (статус: Доктор наук), 27 августа 2009, 16:29 [#11]:"Спасибо" — это много. Достаточно пива. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | igoriy (статус: Посетитель), 27 августа 2009, 16:55 [#12]:Ты слишком постоянен.Я уже предлагал, а ты сказал не стоит |  
|   | min@y™ (статус: Доктор наук), 27 августа 2009, 17:16 [#13]: Цитата: Я уже предлагал, а ты сказал не стоит
 
 
 Когдай-то я отказалсо???
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | igoriy (статус: Посетитель), 27 августа 2009, 17:22 [#14]:Я уж точно не помню , но месяц - полтора назад я с очередным вопросиком обращался, помоему по поводу перетаскивания формы.А ты сказал что только что из магазина и с пивом |  
|   | Ерёмин А.А. (статус: *Администратор), 27 августа 2009, 17:26 [#15]:Господа, идите в личку. Дальнейшие сообщения не по теме будут караться замечаниями. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |