Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 19.12.2013, 15:16
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Curen
http://zalil.ru/34859382 - тут листинг программы в txt файле
http://zalil.ru/34859386 - на всякий случай проект полностью в архиве
Всё. Разобрался.
Ошибка возникает только если при нажатии горячей клавиши фокус ввода находится в одном из уничтожаемых объектов. А возникает исключение из-за того, что после завершения обработчика 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  
Старый 20.12.2013, 08:55
Curen Curen вне форума
Прохожий
 
Регистрация: 19.12.2013
Сообщения: 9
Версия Delphi: Delphi XE2
Репутация: 10
По умолчанию

Работает, спасибо огромное!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter