Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
2-1139331683
Bogdan1024
2006-02-07 20:01
2006.02.26
Программа-будильник.


15-1138741427
Michael5
2006-02-01 00:03
2006.02.26
Решил сделать сервер. Мне подарили материнку. Посмотрел: 486!


6-1131830669
Volf_555
2005-11-13 00:24
2006.02.26
Как получить текст строки состояния активного окна?


8-1127057492
maVladimir
2005-09-18 19:31
2006.02.26
Коррекция цвета в Windows


2-1139726738
Delphi_is_cool
2006-02-12 09:45
2006.02.26
ShowModal.