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

Вниз

Убрать звук при использовании Alt   Найти похожие ветки 

 
Юрий29   (2013-01-03 22:01) [0]

Здравствуйте, в своей программе обрабатываю сочетания клавиш "цифра+Ctrl / Shift / Alt". При комбинации с Alt программа выдает звуковой сигнал, можно ли (и как) от него избавиться, не потеряв функциональность?

     if (ssShift in shift) and not (ssCtrl in shift) and not (ssAlt in shift) then
       begin
         if key = ord("1") then ...
       end else
     if not (ssShift in shift) and (ssCtrl in shift) and not (ssAlt in shift) then
       begin
         if key = ord("1") then ...
       end else
     if not (ssShift in shift) and not (ssCtrl in shift) and (ssAlt in shift) then
       begin
         if key = ord("1") then ...
       end;


 
Inovet ©   (2013-01-03 22:29) [1]

При нажатом Alt на цифровой клавиатуре вводится символ по его коду.


 
Юрий29   (2013-01-03 22:54) [2]

А если не на цифровой клавиатуре? Просто удобно использовать одни и те же кнопки с разными модификаторами.. функционал работает как надо, вот только бы избавиться от звука при Alt..


 
RWolf ©   (2013-01-04 01:58) [3]

key := 0;


 
Германн ©   (2013-01-04 02:08) [4]

Имхо условия в if не оптимальные.


 
KilkennyCat ©   (2013-01-04 02:33) [5]


> Германн ©   (04.01.13 02:08) [4]


i := 1;
if (ssShift in shift) then i :=  i  *  2;
if (ssCtrl in shift) then  i :=  i  *  3;
if (ssAlt in shift) then   i :=  i  *  4;
case (key * i) of
//ssShift
60 :
62 :
..
78 :  
//ssCtrl
90 :
93 :
..
108 :  
//ssAlt
120 :
124 :
...
136 :
default:

end;


 
Германн ©   (2013-01-04 02:55) [6]


> KilkennyCat ©   (04.01.13 02:33) [5]
>
>
> > Германн ©   (04.01.13 02:08) [4]
>
>

Не а!
:)


 
Юрий29   (2013-01-04 15:53) [7]


> RWolf ©   (04.01.13 01:58) [3]
> key := 0;

Это не помогает, или я просто не умею правильно готовить? Приведите, пожалуйста, пример..

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
...
       if (ssShift in shift) and not (ssCtrl in shift) and not (ssAlt in shift) then
         begin
           if key = ord("1") then caption := "Действие 1";
         end else
       if not (ssShift in shift) and (ssCtrl in shift) and not (ssAlt in shift) then
         begin
           if key = ord("1") then caption := "Действие 2";
         end else
       if not (ssShift in shift) and not (ssCtrl in shift) and (ssAlt in shift) then
         begin
           if key = ord("1") then begin shift := []; key := 0; caption := "Действие 3";end;
         end;

При Alt звук остается..


 
KilkennyCat ©   (2013-01-04 16:14) [8]


> Это не помогает

помогает. но на KeyPress.


 
RWolf ©   (2013-01-04 16:24) [9]


> [7]

да, это не помогает, моя ошибка.
как вариант — кинуть на форму ActionList, создать нужное число действий и сопоставить им шорткаты.


 
Юрий29   (2013-01-04 18:47) [10]


> кинуть на форму ActionList, создать нужное число действий
> и сопоставить им шорткаты.

Спасибо! Уже начал приспосабливаться к этому варианту, как случайно успешно получилось обойти проблему отключив системное меню в свойствах формы (вариант, конечно, не для всех, но мне подойдет)


 
petvv   (2013-01-05 20:40) [11]

В FormCreate попробуй добавь

systemparametersinfo(spi_setbeep, 0, nil, 0);

FormClose

systemparametersinfo(spi_setbeep, 1, nil, 0);


 
KilkennyCat ©   (2013-01-05 22:09) [12]


> petvv   (05.01.13 20:40) [11]

сам подумай, что советуешь.


 
Inovet ©   (2013-01-05 22:28) [13]

> [11] petvv   (05.01.13 20:40)
> systemparametersinfo

Чё так скромно? Надо сразу чё-нить такое, чтобы наверняка помогло
ExitWindowsEx


 
petvv   (2013-01-09 21:00) [14]


> сам подумай, что советуешь.


сам то пробовал. Просил человек убрать звук при Alt+хз вот получай


 
petvv   (2013-01-09 21:06) [15]

А при моём варианте ни при переходе по Edit"ам по Enter, ни другие системные звуки канать не будут


 
KilkennyCat ©   (2013-01-09 21:56) [16]


>  ни другие системные звуки

еще раз подумай.



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

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

Наверх





Память: 0.48 MB
Время: 0.003 c
2-1357371621
Handler
2013-01-05 11:40
2013.09.22
исключить дублирование в ComboBox ах


2-1357671425
hansa
2013-01-08 22:57
2013.09.22
Собственник визуальных компонент


15-1365671938
ВВВ
2013-04-11 13:18
2013.09.22
Про видеокарту.


2-1357053624
hghhhJ
2013-01-01 19:20
2013.09.22
Как к "сейчас" прибавить время и вычислить новую дату и время?


15-1365971403
Юрий
2013-04-15 00:30
2013.09.22
С днем рождения ! 15 апреля 2013 понедельник





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский