Вниз
Скачать: CL | DM;

Уважаемые мастера! Как по кнопке Esc закрыть окно формы??   Найти похожие ветки 

 
youta   (2006-07-26 12:49) [0]

Уважаемые мастера! Как по кнопке Esc закрыть окно формы??


 
tesseract ©   (2006-07-26 12:54) [1]

procedure TfmEditItem.btNewKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
if key=VK_ESCAPE then close;
end;


 
youta   (2006-07-26 12:58) [2]

Вы неправильно поняли - как закрыть окно при нажатии клавиши Esc НА КЛАВИАТУРЕ??


 
Desdechado ©   (2006-07-26 13:04) [3]

> НА КЛАВИАТУРЕ
А тебе что, про джойстик написали?
У формы ставишь keyPreview=True и обработчик из [1]


 
youta   (2006-07-26 13:12) [4]

просто tesseract мне написал данный обработчик нажатия на кнопку btNew!!!! а дело все оказалось в keyPreview=True !!!!
Спасибо!!!!!


 
tesseract ©   (2006-07-26 13:14) [5]


> youta   (26.07.06 13:12) [4]


Ну бывает :-)

не учёл что пример будет передран без изменений :-)


 
Ketmar ©   (2006-07-26 13:39) [6]

в следующий раз трижды проверь. а то подсовываешь дезинформацию. народ копипастит -- а оно не работает! издевательство, адназначна.


 
Loginov Dmitry ©   (2006-07-26 15:20) [7]

Еще вариант: использовать список действий TActionList. Создаешь в нем действие, холдишь нужную комбинацию клавиш и ставишь обработчик на OnExecute. Методологически этот вариант более правильный, чем KeyPreview, так как не допускает обработку нажатия горячих клавиш с другими компонентами, а KeyPreview - допускает. Причем некоторые компоненты (TDBGrid, например) обрабатывают сообщения о нажатии клавиш раньше, чем это делает форма при KeyPreview.


 
Desdechado ©   (2006-07-26 15:32) [8]


> обработку нажатия горячих клавиш с другими компонентами,
> а KeyPreview - допускает
Это как настроишь обработку FormKeyDown

> Причем некоторые компоненты (TDBGrid, например) обрабатывают
> сообщения о нажатии клавиш раньше, чем это делает форма
> при KeyPreview.
DBGrid не ведет себя подобным образом. Какие еще компоненты под подозрением?


 
Loginov Dmitry ©   (2006-07-26 19:06) [9]

> DBGrid не ведет себя подобным образом


Ведет.

Недавно хотел сделать фичу: чтобы для выделенной ячейки DBGrid при нажатии Space происходило выделение текста (InplaceEditor.SelectAll). Однако ввод символа пробела в ячейку происходит еще до возникновения OnKeyXXX формы.


 
tesseract ©   (2006-07-26 21:59) [10]

> [9] Loginov Dmitry ©   (26.07.06 19:06)

Гм. бывает при редактировании в гриде, по моему придёться два раза ESC нажать.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.044 c
15-1156072441
BOA_KAA
2006-08-20 15:14
2006.09.10
Интересный конкурс


1-1153766697
AlexeyT
2006-07-24 22:44
2006.09.10
Отклик на команду XP "Каскадом"


15-1156081068
vain
2006-08-20 17:37
2006.09.10
Я нормальный или нет?


1-1153915757
DelphiLexx
2006-07-26 16:09
2006.09.10
Скопировать один TreeView в другой


5-1139173939
homm
2006-02-06 00:12
2006.09.10
Хранение данных компонента




   Наверх