![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убрать звук при использовании Alt
Юрий29 © (2013-01-03 22:01:00)Здравствуйте, в своей программе обрабатываю сочетания клавиш "цифра+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;
KilkennyCat (2013-01-09 21:56:00) [1]
> ни другие системные звуки
еще раз подумай.
petvv (2013-01-09 21:06:00) [2]А при моём варианте ни при переходе по Edit'ам по Enter, ни другие системные звуки канать не будут
petvv (2013-01-09 21:00:00) [3]
> сам подумай, что советуешь.
сам то пробовал. Просил человек убрать звук при Alt+хз вот получай
Inovet (2013-01-05 22:28:00) [4]> [11] petvv (05.01.13 20:40)
> systemparametersinfo
Чё так скромно? Надо сразу чё-нить такое, чтобы наверняка помогло
ExitWindowsEx
KilkennyCat (2013-01-05 22:09:00) [5]
> petvv (05.01.13 20:40) [11]
сам подумай, что советуешь.
petvv (2013-01-05 20:40:00) [6]В FormCreate попробуй добавь
systemparametersinfo(spi_setbeep, 0, nil, 0);
FormClose
systemparametersinfo(spi_setbeep, 1, nil, 0);
Юрий29 (2013-01-04 18:47:00) [7]
> кинуть на форму ActionList, создать нужное число действий
> и сопоставить им шорткаты.
Спасибо! Уже начал приспосабливаться к этому варианту, как случайно успешно получилось обойти проблему отключив системное меню в свойствах формы (вариант, конечно, не для всех, но мне подойдет)
RWolf (2013-01-04 16:24:00) [8]
> [7]
да, это не помогает, моя ошибка.
как вариант — кинуть на форму ActionList, создать нужное число действий и сопоставить им шорткаты.
KilkennyCat (2013-01-04 16:14:00) [9]
> Это не помогает
помогает. но на KeyPress.
Юрий29 (2013-01-04 15:53:00) [10]
> 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 звук остается..
Германн (2013-01-04 02:55:00) [11]
> KilkennyCat © (04.01.13 02:33) [5]
>
>
> > Германн © (04.01.13 02:08) [4]
>
>
Не а!
:)
KilkennyCat (2013-01-04 02:33:00) [12]
> Германн © (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:08:00) [13]Имхо условия в ifне оптимальные.
RWolf (2013-01-04 01:58:00) [14]key := 0;
Юрий29 (2013-01-03 22:54:00) [15]А если не на цифровой клавиатуре? Просто удобно использовать одни и те же кнопки с разными модификаторами.. функционал работает как надо, вот только бы избавиться от звука при Alt..
Inovet (2013-01-03 22:29:00) [16]При нажатом Alt на цифровой клавиатуре вводится символ по его коду.