Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
ВнизOnKeyDown Найти похожие ветки
← →
bg8 © (2006-01-25 11:52) [0]Доброго времени суток, Мастера!
Вопрос прост до банальности - есть TEdit, есть обработчик события OnKeyDown, который при нажатии клавиши Enter производит typecast с сождержимым, передает значение поля Text процедуре... ну не важно чего он делает... А важно вот что - при нажатии Enter`а, когда TEDit в фокусе ввода, раздается стандартный виндузовый звук (типа Exclamation - не помню точно). Как от этого избавиться?
← →
begin...end © (2006-01-25 12:07) [1]В OnKeyPress: if Key = #13 then Key := #0
← →
bg8 © (2006-01-25 19:11) [2]
> В OnKeyPress: if Key = #13 then Key := #0
К сожалению, Key имеет тип Word, а не Char, просто присваивание нулю ничего не дало, да и не могло дать, т.к. эта переменная передается в тело процедуры лишь как индикатор состояния...
← →
bg8 © (2006-01-25 19:12) [3]Извиняюсь, не заметил что имеется ввиду OnKeyPress, а не OnKeyDown. А решить проблему нужно именно в обработчике OnKeyDown
← →
stakan © (2006-01-25 19:42) [4]
if Key = VK_RETURN then Key := 0;
← →
begin...end © (2006-01-25 20:07) [5]> bg8 © (25.01.06 19:12) [3]
Боюсь, что простого решения в рамках одного только OnKeyDown не будет. При нажатии Enter edit"у сначала посылается сообщение WM_KEYDOWN, в результате чего вызывается обработчик OnKeyDown. Однако, кроме этого, WM_KEYDOWN транслируется системой в другое сообщение -- WM_CHAR, и оно приходит edit"у следующим (после WM_KEYDOWN). В результате вызывается OnKeyPress, и если внутри него не обнулить Key, стандартная реакция останется.
← →
Leonid Troyanovsky © (2006-01-26 09:35) [6]
> bg8 © (25.01.06 19:12) [3]
> А решить проблему нужно именно в обработчике OnKeyDown
А почему именно там?
procedure TForm1.CMDialogKey(var msg: TCMDialogKey); // message cm_DialogKey;
begin
if (msg.CharCode = vk_return) and
(ActiveControl is TEdit) then
msg.Result := 1
else
inherited;
end;
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.077 c