Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.03.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
15-1290852684
Чайник
2010-11-27 13:11
2011.03.06
Удалить файл


15-1290424828
stas
2010-11-22 14:20
2011.03.06
Хорошая книга по XCode


1-1248514978
ford
2009-07-25 13:42
2011.03.06
Отследить изм-е позиции слова в TRichEdit при изм-ии раз-ра кнтрл


15-1290062412
Сергей
2010-11-18 09:40
2011.03.06
Delphi и Access


15-1290202186
Юрий
2010-11-20 00:29
2011.03.06
С днем рождения ! 20 ноября 2010 суббота





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский