|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Цитата:
Ошибка возникает только если при нажатии горячей клавиши фокус ввода находится в одном из уничтожаемых объектов. А возникает исключение из-за того, что после завершения обработчика FormKeyDown делается попытка отдать нажатую клавишу на обработку уже уничтоженному объекту. Просто нужно пресекать попытку отдать на обработку нажатую клавишу если она уже была тобой обработана как горячая клавиша. Например так: Код:
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (ssCtrl in Shift) and (key = 78) then begin NewModul; Key := 0; end; end; Или так: Код:
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (ssCtrl in Shift) and (key = 78) then begin NewModul; Abort; end; end; |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Curen (20.12.2013)
|
#17
|
|||
|
|||
Работает, спасибо огромное!
|