Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2013, 11:13   #1
amphoenix
Новичок
Джуниор
 
Регистрация: 03.10.2013
Сообщений: 4
По умолчанию Замена стандартных обработчиков формы своими

Здравствуйте, подскажите пожалуйста, как сделать правильно. У меня есть два режима работы программы. В 1 выполняются стандартные обработчики формы, в 2 мои. Однако, во 2 режиме вместе с моими выполняется код стандартных обработчиков. Подскажите, как сделать так,чтобы выполнялись только мои. Код писать за меня не надо. Прошу подкинуть идей как сделать,чтобы работали только мои. Замену обработчиков выполняю простым присваиванием. Отказать от стандартных обработчиков не могу.
amphoenix вне форума Ответить с цитированием
Старый 03.10.2013, 11:26   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а что такое стандартные обработчики ?
eval вне форума Ответить с цитированием
Старый 03.10.2013, 11:36   #3
amphoenix
Новичок
Джуниор
 
Регистрация: 03.10.2013
Сообщений: 4
По умолчанию

Те, которые создаются у формы в момент, когда на вкладке events щелкаешь по событию, FormClick при щелчке по OnClick, например.
amphoenix вне форума Ответить с цитированием
Старый 03.10.2013, 11:48   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вызываешь стандартный, а внутри вызываешь свой обработчик.
Если твои обработчики не отличаются от TNotifyEvent, то можно вообще в событиях свои указать.
Человек_Борща вне форума Ответить с цитированием
Старый 03.10.2013, 11:50   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Дык запоминай в переменную типа TNotifyEvent или другого в соответствии с типом обработчика события тот же OnClick. Цепляй на него OnClick свой обработчик. По выходу восстанавливай старое значение
Код:
var lOldOnClick: TNotifyEvent;
...
lOldOnClick:=MyControl.OnCick;
MyControl.OnCick:=NewMyControlClick;
...
procedure TForm2.NewMyControlClick(Sender: TObject);
begin
  if Assigned(lOldOnClick) then lOldOnClick(Sender); // если нужно чтобы старый отработал
...
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 03.10.2013 в 12:01.
Аватар вне форума Ответить с цитированием
Старый 03.10.2013, 11:51   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Замену обработчиков выполняю простым присваиванием.
после присвоения ваших обработчиков, именно они и будут выполнятся. "стандартные" не будут!


p.s. в связи с тем, что в пустом проекте никаких "стандартных" обработчиков НЕТ, то возникает подозрение, что либо Вы не всё рассказываете, либо совсем не то делаете...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2013, 12:45   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Те, которые создаются у формы в момент, когда на вкладке events щелкаешь по событию
ну они такие же стандартные как Человек_Борща папа римский.
eval вне форума Ответить с цитированием
Старый 03.10.2013, 14:16   #8
amphoenix
Новичок
Джуниор
 
Регистрация: 03.10.2013
Сообщений: 4
По умолчанию

Прошу прощения, тупанул, для проверки "работает/не работает" брал не те обработчики. Заменял одни,а проверял выполнение тех, которые не трогал. Те и выполнялись...
amphoenix вне форума Ответить с цитированием
Старый 03.10.2013, 14:35   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ОК. тему закрываем?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2013, 16:11   #10
amphoenix
Новичок
Джуниор
 
Регистрация: 03.10.2013
Сообщений: 4
По умолчанию

Да, конечно, всем спасибо))
amphoenix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена формы при нажатии на кнопку exedmxexe PHP 3 25.03.2012 17:41
Создание обработчиков событий Arsenx777 Общие вопросы Delphi 12 25.02.2012 14:12
Очистка содержимого формы и замена новым. (((sheva))) Общие вопросы Delphi 2 12.05.2011 12:09
Замена стандартных процедур и функций для работы со строками Alexar Makken Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2010 21:59
Замена формы . dima2207 Общие вопросы Delphi 2 22.05.2007 06:15