![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Регулировака громкости [D7, XP]
MSSS © (2006-07-31 08:17:00)Здраствуйте, Товарищи!
Допустим, есть TrackBar (max 100), нужно с его помощью регулировать громкость Windows. Объясните, плиз, как такое сделать? Может кто примерчиком кинется?
СпасибО!
Gydvin (2006-08-01 08:39:00) [1]http://www.delphixfiles.narod.ru/Samples/ChVol.zip
MSVN (2006-08-01 08:10:00) [2]Простите, что поднимаю эту ветку, думую заводить новую не стоит.
Вот в чем вопрос. Как узнать на каком уровне громкость расположена сейчас?
a := GetWaveVolume;
не помогает.
спасибо!
GeLLeR (2006-07-31 21:53:00) [3]
> Ketmar © (31.07.06 21:24) [9]
Ну правда
Ketmar (2006-07-31 21:24:00) [4]>Homo Sapiens © (31.07.06 21:05) [8]
а зачем вообще что-то писать? всё давно уже написано...
Homo Sapiens (2006-07-31 21:05:00) [5]
> Phoroon~ © (31.07.06 09:31) [1]
Зачем так сложно?
скачиваешь компонент AMixer
там это делается в одну строчку...
MSVN (2006-07-31 13:27:00) [6]огромное всем спасибо!
Gydvin (2006-07-31 11:53:00) [7]Элементарная математика
i:=65535 div 100;
edit1.Text:=inttostr(trackbar1.Position div i)+'%';
MSVN (2006-07-31 11:33:00) [8]а как например тогда отображать это все в процентах?
рас у у тракбара интервал 0..65535 ???
antonn (2006-07-31 11:28:00) [9]medved_68 © (31.07.06 11:06) [3]
LeftVolume: Word;
у тракбара интервал 0..65535
medved_68 (2006-07-31 11:06:00) [10]
> procedure TForm1.Button2Click(Sender: TObject);
> var LeftVolume: Word;
> RightVolume: Word;
> begin
> LeftVolume := StrToInt(Edit1.Text);
> RightVolume := StrToInt(Edit2.Text);
> SetWaveVolume(MakeLong(LeftVolume, RightVolume)); ///записать
> значение
> end;
Попробуй изменить так:
LeftVolume := TrackBar1.Pozition;
RightVolume :=TrackBar2.Pozition;
MSVN (2006-07-31 10:11:00) [11]\\ но переделать под TrackBar ,проблемы нет.
бьюсь уже час, чего то не выходит
Phoroon~ (2006-07-31 09:31:00) [12]Здесь с помощью Edit(ов) регулируется, но переделать под TrackBar ,проблемы нет.
uses MMSystem;
function TForm1.GetWaveVolume: DWord;
var Woc : TWaveOutCaps;
Volume : DWord;
begin
result:=0;
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
MMSYSERR_NOERROR then begin
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then begin
WaveOutGetVolume(WAVE_MAPPER, @Volume);
Result := Volume;
end;
end;
end;
procedure TForm1.SetWaveVolume(const AVolume: DWord);
var Woc : TWaveOutCaps;
begin
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
MMSYSERR_NOERROR then begin
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
WaveOutSetVolume(WAVE_MAPPER, AVolume);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var LeftVolume: Word;
RightVolume: Word;
begin
LeftVolume := StrToInt(Edit1.Text);
RightVolume := StrToInt(Edit2.Text);
SetWaveVolume(MakeLong(LeftVolume, RightVolume)); ///записать значение
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Caption := IntToStr(GetWaveVolume); //получить значение
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Beep; ///тест
end;