Глюки с onKeyDown / onKeyPress

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Глюки с onKeyDown / onKeyPress

Сообщение fdima1979 » 06.09.2013 13:48:26

Есть две формы: одна основная, вторая подчиненная.
Подчиненная форма вызывается с помощью нажатия функциональной кнопки (F7) через обработчик OnKeyDown:

~~~~~~~~~~~~~~~~~
If Key = VK_F7 Then Form2.ShowModal;
~~~~~~~~~~~~~~~~~

Внутри подчиненной формы несколько tEdit, которые я заполняю.

И вот после того как я закрываю подчиненную форму, она почему то вызывается снова.

Опытным путем выяснил что если нажать в подчиненной форме в совокупности больше 5 символов, то при выходе, у основной формы срабатывает OnKeyDown с кнопкой которая была нажата для вызова ShowModal то есть, F7.

Лазарь у меня 1.0.10, ставил из репозитария AltLinux.
Что делать не знаю.

есть возможность делать вот так:
~~~~~~~~~~~~~~~~~
...Then Begin Form2.ShowModal; Key := 0; End;
~~~~~~~~~~~~~~~~~
но это временное решение.
fdima1979
новенький
 
Сообщения: 15
Зарегистрирован: 19.07.2013 21:16:17

Re: Глюки с onKeyDown / onKeyPress

Сообщение Alex2013 » 12.09.2013 12:56:53

Как вариант попробуй "за дисайблить" основную форму перед вызовом ...
If Key = VK_F7 Then
begin
Enabled:=False;
Form2.ShowModal;
Enabled:=True;
end;

Возможно также поможет Activate:=false;
В общем пробуй !
Хотя модальный режим по идее должен делать тоже самое
Гм .. если проблема в очистке буфера то можно очистить очередь сообщений
кажется через getКeybordMessage... (Извини точное название функции сходу не вспомню)
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 232

Рейтинг@Mail.ru