Есть две формы: одна основная, вторая подчиненная.
Подчиненная форма вызывается с помощью нажатия функциональной кнопки (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;
~~~~~~~~~~~~~~~~~
но это временное решение.
Глюки с onKeyDown / onKeyPress
Модератор: Модераторы
Как вариант попробуй "за дисайблить" основную форму перед вызовом ...
If Key = VK_F7 Then
begin
Enabled:=False;
Form2.ShowModal;
Enabled:=True;
end;
Возможно также поможет Activate:=false;
В общем пробуй !
Хотя модальный режим по идее должен делать тоже самое
Гм .. если проблема в очистке буфера то можно очистить очередь сообщений
кажется через getКeybordMessage... (Извини точное название функции сходу не вспомню)
If Key = VK_F7 Then
begin
Enabled:=False;
Form2.ShowModal;
Enabled:=True;
end;
Возможно также поможет Activate:=false;
В общем пробуй !
Хотя модальный режим по идее должен делать тоже самое
Гм .. если проблема в очистке буфера то можно очистить очередь сообщений
кажется через getКeybordMessage... (Извини точное название функции сходу не вспомню)
