Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
Как узнать, какой объект вызвал TAction? Найти похожие ветки
← →
Aleksandr (2003-08-29 15:22) [0]В программе две разные кнопки имеют указатель на один TAction. Но в его Execute, срабатывающем на их нажатии, нужно знать, какая из кнопок его вызвала. У самого TAction есть свойство, которое указывает на вызвавший объект?
← →
Skier (2003-08-29 15:28) [1]
> У самого TAction есть свойство, которое указывает на вызвавший
> объект?
Нет.
← →
don-do (2003-08-29 15:34) [2]обрати внимание на функции для owerride
function HandlesTarget(Target: TObject): Boolean; virtual;
procedure UpdateTarget(Target: TObject); virtual;
procedure ExecuteTarget(Target: TObject); virtual;
Target - это именно то что тебе нужно!
← →
dez (2003-08-29 15:51) [3]Sender
← →
Skier (2003-08-29 15:53) [4]>dez © (29.08.03 15:51)
Уверен ?
← →
don-do (2003-08-29 16:02) [5]Sender - это и есть сам Action
А тебе придется создать свои классы , переопределить функции, добавив в них свои отравотчики.
например:
OnUpdateTarget(Sender:TAction;Target: TObject);
---
procedure UpdateTarget(Target: TObject); owerride;
procedure UpdateTarget(Target: TObject);
begin
If Assigned(FOnUpdateTarget) then FOnUpdateTarget(Self,Target);
inherited;
end;
← →
dez (2003-08-29 16:06) [6]да. фигня. проверил:сендер - акшен.
← →
Aleksandr (2003-08-29 16:30) [7]Да, Sender - всегда TAction. Всем спасибо, уже нашел, что указатель - ActionComponent. И никаких сложностей :)
← →
don-do (2003-08-29 16:48) [8]Да, не уж-то Borland додумался в 7 версии?!
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.009 c