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

Вниз

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 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
1-49588
Марат
2004-01-06 12:57
2004.01.16
F1


1-49489
rimd
2004-01-03 19:11
2004.01.16
Forms


1-49620
Крутыш
2004-01-03 21:56
2004.01.16
Как вычислить координаты курсора???


6-49673
gedd
2003-11-16 18:11
2004.01.16
Определение имени активного DialUp соединения если их несколько?


8-49652
Fatkulin
2003-09-15 07:49
2004.01.16
Звук





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский