Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.06;
Скачать: CL | DM;

Вниз

Закрытие формы из другой формы   Найти похожие ветки 

 
vitge   (2010-12-14 17:19) [0]

Вопрос по сути как-бы елементарный, но по событию onPressKeydown розмещенному на модуле формы 1, ставится закрытие другой Form4.close но этого не происходит. Но по другому событию это  проиходит, по таймеру например. Ссылка в юните на другую форму имеется. Мистика какае-то. Спасибо за помощь.


 
stas ©   (2010-12-14 17:23) [1]

значит форма не перехватывает событие onPressKeydown.
Используй ActionList


 
И. Павел ©   (2010-12-14 17:25) [2]


> onPressKeydow

А какое точно событие: OnKeyPress или OnKeyDown? Может быть, обработчик и не вызывается (например, нажата клавиша insert и т.п.) или событие ловится компонентом, который сейчас в фокусе, а не формой?


 
mahab ©   (2010-12-14 17:31) [3]


> И. Павел ©



> или событие ловится компонентом, который сейчас в фокусе,
>  а не формой

То есть не включено свойсво формы ketpreview


 
vitge   (2010-12-14 17:31) [4]

Кажется понял почему Форме 4 активна, и соответственно не воспринимается
onPressKeydown. Попробывал через applicationEventsShortCUT все получилось. Но возникла ситуация - мне надо чтобы реакция была через комбинацию клавиш CTRL+1 , а там через только один код. Есть возможность такой обработки при нажатой клавише (ctl,alt ...)?


 
mahab ©   (2010-12-14 17:32) [5]

Виноват keypreview


 
mahab ©   (2010-12-14 17:40) [6]

Посмотри Registerhotkey проста в использованиии.После регистрации
отлавливай типа WMhotkey(var mes); message WM_hotkey


 
Leonid Troyanovsky ©   (2010-12-14 19:56) [7]


> vitge   (14.12.10 17:31) [4]

> все получилось. Но возникла ситуация - мне надо чтобы реакция
> была через комбинацию клавиш CTRL+1 , а там через только
> один код. Есть возможность такой обработки при нажатой клавише
> (ctl,alt ...)?


procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
 var Handled: Boolean);
begin
 if Msg.CharCode = ORD("1") then
   if GetKeyState(VK_CONTROL) and $8F <> 0 then
     Form2.Close;
end;

--
Regards, LVT.


 
vitge   (2010-12-15 17:51) [8]

Спасибо LVT и mahab за помощь. Есть ли можно на последок,
что означает and $8F <> 0 .... Заранее благодарен.


 
Ega23 ©   (2010-12-15 17:57) [9]


> что означает and $8F <> 0

не and $8F <> 0, а GetKeyState(VK_CONTROL) and $8F <> 0
Или, если со скобочками, то (GetKeyState(VK_CONTROL) and $8F) <> 0


 
vitge   (2010-12-15 20:58) [10]

Теперь более  ясно. Спасибо.


 
Leonid Troyanovsky ©   (2010-12-16 05:50) [11]


> vitge   (15.12.10 17:51) [8]
 
> что означает and $8F <> 0

Ну, во-ще-то, должно быть $80, т.е. проверяем старший бит, 10000000,
sorry.

--
Regards, LVT.


 
vitge   (2010-12-17 20:26) [12]

Вот теперь совсем замечательно.



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

Текущий архив: 2011.03.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
2-1292010343
vlad
2010-12-10 22:45
2011.03.06
тип variant


2-1292567745
RUu
2010-12-17 09:35
2011.03.06
еще раз по поводу соответствия типов в условии


15-1290108478
Petr V. Abramov
2010-11-18 22:27
2011.03.06
Голосеевская улица


11-1228743914
Евгений
2008-12-08 16:45
2011.03.06
delphi7 + rip sysdcu, variants?


15-1290457835
stas
2010-11-22 23:30
2011.03.06
TIcon сохранить в файл