Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

Регулировака громкости   Найти похожие ветки 

 
MSSS   (2006-07-31 08:17) [0]

Здраствуйте, Товарищи!
Допустим,  есть TrackBar (max 100), нужно с его помощью регулировать громкость Windows. Объясните, плиз, как такое сделать? Может кто примерчиком кинется?
СпасибО!


 
Phoroon~ ©   (2006-07-31 09:31) [1]

Здесь с помощью 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;


 
MSVN   (2006-07-31 10:11) [2]

\\ но переделать под TrackBar ,проблемы нет.
бьюсь уже час, чего то не выходит


 
medved_68 ©   (2006-07-31 11:06) [3]


> 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;


 
antonn ©   (2006-07-31 11:28) [4]

medved_68 ©   (31.07.06 11:06) [3]
LeftVolume: Word;

у тракбара интервал 0..65535


 
MSVN   (2006-07-31 11:33) [5]

а как например тогда отображать это все в процентах?
рас у у тракбара интервал 0..65535 ???


 
Gydvin ©   (2006-07-31 11:53) [6]

Элементарная математика

i:=65535 div 100;
edit1.Text:=inttostr(trackbar1.Position div i)+"%";


 
MSVN   (2006-07-31 13:27) [7]

огромное всем спасибо!


 
Homo Sapiens ©   (2006-07-31 21:05) [8]


> Phoroon~ ©   (31.07.06 09:31) [1]

Зачем так сложно?
скачиваешь компонент AMixer
там это делается в одну строчку...


 
Ketmar ©   (2006-07-31 21:24) [9]

>Homo Sapiens ©   (31.07.06 21:05) [8]
а зачем вообще что-то писать? всё давно уже написано...


 
GeLLeR ©   (2006-07-31 21:53) [10]


> Ketmar ©   (31.07.06 21:24) [9]

Ну правда


 
MSVN   (2006-08-01 08:10) [11]

Простите, что поднимаю эту ветку, думую заводить новую не стоит.
Вот в чем вопрос. Как узнать на каком уровне громкость расположена сейчас?
a := GetWaveVolume;
не помогает.
спасибо!


 
Gydvin ©   (2006-08-01 08:39) [12]

http://www.delphixfiles.narod.ru/Samples/ChVol.zip



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
4-1146038577
tvv
2006-04-26 12:02
2006.08.20
Работа с оборудованием


2-1154344342
Дева
2006-07-31 15:12
2006.08.20
как умнее


15-1153553855
vidiv
2006-07-22 11:37
2006.08.20
Как на PHP сделать ...


2-1154528062
cando
2006-08-02 18:14
2006.08.20
биты


2-1154158166
Батя
2006-07-29 11:29
2006.08.20
Реестр





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский