Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2007, 16:26   #1
ByWatt
Новичок
Джуниор
 
Регистрация: 20.12.2007
Сообщений: 1
По умолчанию Переопределение реакции на события

1. у объекта есть свойство процедурного типа, в котором хранится обработчик на определенное событие. например, TTreeView.OnAddition
2. при наступлении события этот обработчик берется у свойства через аккессор (в общем случае) read, и управление передается уже внутрь обработчика.
3. если это так, то возможно ли в потомке TTreeView переопределить функцию-акессор свойства OnAddition так, чтобы она возвращала не просто значение поля FOnAddition, а некоторую процедуру?

Переопределяю свойство в потомке следующим образом:

TExTreeView = class(TTreeView)
strict private
function GetOnAddition: TTVExpandedEvent;
...
published
property OnAddition read GetOnAddition;
end;
...

function TExTreeView.GetOnAddition: TTVExpandedEvent;
begin
Result := ExOnAddition;
end;

procedure TExTreeView.ExOnAddition(Sender: TObject; Node: TTreeNode);
var
t: TTVExpandedEvent;
begin
t := inherited OnAddition;
if Assigned(t) then t(Sender, Node);
SomeMyActions(Sender, Node);
end;

в общем, делаю так, и ничего не получается по идее, даже если FOnAddition будет пуста, то все равно должны выполняться какие-то действия SomeMyActions, но этого не происходит.

п.с. если же в конструкторе TExTreeView свойству OnAddition присвоить каку-нибудь тестовую процедуру типа TTVExpandedEvent, то при добавлении нового узла она будет выполняться, но управление внутрь ExOnAddition так и не передается

Последний раз редактировалось ByWatt; 20.12.2007 в 16:48.
ByWatt вне форума Ответить с цитированием
Старый 20.12.2007, 17:22   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Почитайте вот эту статейку:
http://ed.nko13.ru/index.php?page=6&ar=58
Все не очень сложно. Немного терпения при чтении и...
Думаю, это - именно то, что вам нужно...
mihali4 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События для DBGrid Максим_Леонидович Компоненты Delphi 1 08.08.2008 22:43
Переопределение операций(сложение,вычитание...) master_root Общие вопросы Delphi 3 18.06.2008 20:20
Переопределение операций toeman Общие вопросы C/C++ 2 20.11.2007 11:21
События для DBGrid Repz БД в Delphi 3 11.08.2007 09:37
Перехват события juden Общие вопросы Delphi 5 23.05.2007 12:21