![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятки с обработчиком события OnKeyDown [D5, D6]
Loxly © (2002-02-14 20:24:00)Проблема с изменением значения параметра var Key:word
Уважаемые Мастера, помогите решить следующую проблему.
У компонента Memo:TMemo имеется обработчик события OnKeyDown. При вводе текста отлеживается нажатие клавиш Ctrl+пробел. Событие возникает когда нужно. Глюков нет.
Но при нажатии Ctrl+пробел в Memo печатается пробел, который мне не нужен.
Т.к. параметр Key объявлен как var, то я закономерно предположил, что присваивание Key:=0 подавит печать пробела. Однако пробел печатается все равно :((
Операция Key:=#0 отлично проходит в OnKeyPress, но в там я не могу узнать о нажатии клавиши Ctrl.
Если бы событие OnKeyDown происходило раньше, чем OnKeyPress, то можно было бы при нажатии Ctrl устанавливать флажок, а в OnKeyPress изменять Key, но OnKeyPress проиходит раньше. Манипуляции с параметром Key события OnKeyUp тоже ни к чему не приводят.
Пожалуйста, посоветуйте что-нибудь.
Loxly (2002-02-14 22:54:00) [1]Спасибо! Все получилось :-)
Набережных С. (2002-02-14 20:42:00) [2]
procedure ....Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key = " ")and(GetKeyState(VK_CONTROL)<0)then Key:=#0;
end;