Вниз
Скачать: CL | DM;

F1   Найти похожие ветки 

 
Марат   (2004-01-06 12:57) [0]

В проекте 3 формы, открывающиеся последовательно. Необходимо, чтобы при нажатии на F1 срабатывало бы событие (например, showmessage("*****")). Если прописываю событие 1 формы (KeyDown) procedure TForm1.KeyDown(...);
begin
if Key=vk_F1 then Showmessage("*****");
end;
то при переходе на 2 или 3 форму это свойство исчезает.
Как сделать так, чтобы это свойство работало во всем проекте, независимо от того на какой форме и на каком объекте этой формы сейчас находится пользователь?


 
Sandman25 ©   (2004-01-06 13:01) [1]

Написать форму - предок всех форм, где нужна эта обработка.
Перекрыть DoKeyDown, если не ошибаюсь.


 
Sandman25 ©   (2004-01-06 13:03) [2]

Ошибся.
Лучше просто KeyDown.


 
Тимохов ©   (2004-01-06 13:08) [3]

А может не надо заморачиваться с обработкой событий?
Может в предке паписать Action с Shortcut"ом?


 
Sandman25 ©   (2004-01-06 13:09) [4]

Тоже вариант.


 
Марат   (2004-01-06 13:24) [5]

Вы, ребята, классно пообщались. А для beginerов можете чуть поподробнее.Я не понял куда и кого.


 
Sandman25 ©   (2004-01-06 13:26) [6]

http://delphi.mastak.ru/articles/parentform/index.html
http://www.delphimaster.ru/articles/repuseforms/index.html


 
Тимохов ©   (2004-01-06 13:26) [7]

Бегинер бряд ли может сделать более одной формы.
Знать ты не бегинер.
Но все же
Про обработку событий что нить слышал?
Про наследование объектов и формы, в частности, слышал?

Ответь, будем давать ответы по мере твоего непонимания отдельных моментов.


 
Марат   (2004-01-06 13:32) [8]

Про событие KeyDown 1 формы (она же главная) я вкурсе. Просто получается так, что событие Showmessage("*****") на этой форме срабатывает здорово, а при переходе на 2 форму нет, особенно если при активизации 2 формы первой активизируется какая-нибудь button1.


 
Тимохов ©   (2004-01-06 13:34) [9]

Сделай предка для всех форм и там обрабатывай указанное событие.


 
Sandman25 ©   (2004-01-06 13:37) [10]

[9] Тимохов © (06.01.04 13:34)

Теперь он сделает в предке обработчик OnKeyDown, а потом будет просить сделать так, чтобы его можно было переопределить в наследнике. Лучше уже сразу правильно учить ИМХО.

[8] Марат (06.01.04 13:32)

Статьи почитайте. Чтобы в следующий раз с похожей проблемой не мучиться.


 
Марат   (2004-01-06 13:38) [11]

В смысле 1 форму сделать родительской, а остальные дочерними?


 
Sandman25 ©   (2004-01-06 13:40) [12]

[11] Марат (06.01.04 13:38)

Нет. Сделать новую форму. А все Ваши формы (которые должны реагировать на F1 таким образом) наследовать от нее.


 
Романов Р.В. ©   (2004-01-06 13:45) [13]

http://www.delphi.hostmos.ru/index.php?stat&stat=12


 
zapped ©   (2004-01-06 15:09) [14]

2Марат (06.01.04 13:32) [8]
особенно если при активизации 2 формы первой активизируется какая-нибудь button1.
KeyPreview формы в true



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.014 c
14-49721
-=spider=-
2003-12-25 12:05
2004.01.16
NetSearch как поставить?


14-49759
АлексейК
2003-12-23 13:50
2004.01.16
Копирование объектов.


3-49442
Skif
2003-12-18 13:44
2004.01.16
MyDac+delphi


4-49808
Gerda
2003-11-12 22:26
2004.01.16
Как получить ссылку на иконку окна


14-49688
kull
2003-12-16 12:55
2004.01.16
Тест Джоэла: 12 шагов к лучшему коду




   Наверх