Здравствуйте друзья. Я вот недавно, блуждая в сети интернет, обнаружил, что многие новички в программировании на Delphi озадачены изменением громкости системы в своих приложениях. Если честно, то я сам сталкивался с этой проблемой, когда писал как и все mp3-проигрыватель. Вот сейчас покопался в своих архивах и нашел решение этой весьма интересной задачи.
Но прежде, вспоминая то время, когда сам же искал ответ, хочу отметить, что во многих форумах пишут код весьма замудренным. Это некоторых как бы пугает, якобы те не в состоянии освоить такую "головную боль". Вот поэтому я решил максимально просто показать код процедуры изменения громкости в системе. Забегая вперед, скажу, что ваши лица застынут в улыбке от простоты решения данной проблемы. Вот собственно и сам код: uses MMSystem; ... procedure SetVolume(const volL, volR: Word); var hWO: HWAVEOUT; waveF: TWAVEFORMATEX; vol: DWORD; begin FillChar(waveF, SizeOf(waveF), 0); waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0); vol := volL + volR shl 16; waveOutSetVolume(hWO, vol); waveOutClose(hWO); end; |
А применение довольно простое. Теперь кидаем на форму TrackBar, в палитре свойств прописываем: min=-65000, max=0. В событии OnChange пишем: procedure TForm1.TrackBar1Change(Sender: TObject); begin SetVolume(abs(trackbar1.position),abs(trackbar1.position)); end; | На этом все. Удачи в программировании!Война миров Z хорошее качество бесплатно онлайн.
Нравится
|