Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.01.2011, 19:52   #1
Kingcss
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 13
По умолчанию Найдите косяк в коде

гдето в коде накосячил, помогите разобраться, прога которая по F7 выключает звук, тоесть выставляет его на минимум:
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if worksound = true then // если звук играет
begin
if  ((ssAlt in Shift)and(Key = VK_F6)) then // при нажатие ALT  и ф6 звук 
begin
if volume >= 65500 then  //увеличиваетна 500 , при условии если он не 
begin
end
else
begin
volume := volume + 500; // превышает 65500
SetVolume(volume, volume);
Edit1.Text := inttostr(volume);
end;
end;
if (ssAlt in Shift) and (Key = VK_F5) then // при ф5 тоже самое но 
begin
if volume <= 500 then //громкость уменьшается и не может превышать 
begin                       //500
end
else
begin
volume := volume - 500;
SetVolume(volume, volume);
Edit1.Text := inttostr(volume);
end;
end;
end;
if (ssAlt in Shift) and (Key = VK_F7) then // алт и ф7 должен выключать 
begin                                                 //звук и  включать
if worksound = true then //worksound :boolean тоесть если звук играет
soundlevel := volume; // сохраняем в переменную текущий звук
worksound := false; // устанавливаем что звук не играет
SetVolume(0, 0); // устанавливаем звук в левом и правом динамике по 0
Edit1.Text := 'Звук выключен'; // пишем что звук выключен
end
else// иначе если worksound равно false
begin
worksound := true; // устанавливаем его на тру
volume := soundlevel; // в мпеременную громковсти пишем  сохраненную
SetVolume(volume,volume);// нами громкость, устанавливаем ее
Edit1.Text := inttostr(volume);
end;
end;
и вот код функции звука
Код:
procedure SetVolume(const volL, volR: Word);
 var
   hWO: HWAVEOUT;
   waveF: TWAVEFORMATEX;
   vol: DWORD;
 begin
   // init TWAVEFORMATEX 
  FillChar(waveF, SizeOf(waveF), 0);
   // open WaveMapper = std output of playsound 
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
   vol := volL + volR shl 16;
   // set volume 
  waveOutSetVolume(hWO, vol);
   waveOutClose(hWO);
 end;
все работало окейно пока не добавил выключение и включение звука, сразу при нажатие, или одного альта или одного ф7, то в edit1.text пишется 0 , при нажатие алт и ф7 пишется звука нет, и все больше ничего не работает, поход гдето прост голимая ошибка, писал после 31 , с бодунца, но когда на трезвляк перечитал код, ошибки серавно не нашел(( помогайте
Kingcss вне форума Ответить с цитированием
Старый 01.01.2011, 20:16   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

А так?
Код:
if (ssAlt in Shift) and (Key = VK_F7) then // алт и ф7 должен выключать 
begin                                                //звук и  включать
if worksound = true then //worksound :boolean тоесть если звук играет
begin 
soundlevel := volume; // сохраняем в переменную текущий звук
worksound := false; // устанавливаем что звук не играет
SetVolume(0, 0); // устанавливаем звук в левом и правом динамике по 0
Edit1.Text := 'Звук выключен'; // пишем что звук выключен
end
else// иначе если worksound равно false
begin
worksound := true; // устанавливаем его на тру
volume := soundlevel; // в мпеременную громковсти пишем  сохраненную
SetVolume(volume,volume);// нами громкость, устанавливаем ее
Edit1.Text := inttostr(volume);
end;
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 02.01.2011, 08:35   #3
Kingcss
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 13
По умолчанию

вот точно, просто тупая ошибка закралась, спс большое, больше постараюсь не косячить..
Kingcss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите ошибку в коде Arch0000 Общие вопросы C/C++ 0 29.05.2010 07:32
найдите ошибку в коде TopoRRR Помощь студентам 6 15.12.2009 10:30
найдите ошибку в коде pony Помощь студентам 1 14.09.2009 10:03
Косяк в коде Dimon88 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 18.09.2008 18:09
Косяк Sanctuar Помощь студентам 1 18.06.2007 07:36