![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Где нажата кнопка
Sergey_b © (2006-09-29 16:01:00)Доброго времени суток всем.
В ActionManager определены действия, и вызываются они из разных форм(одни и те же). Как узнать на какой именно форме произошел вызов действия? В зависимости от этого меняется цель действия(откуда вызов, та форма и является целью).
Palladin (2006-09-29 17:11:00) [1]
> Эт ты зря.
Эт точно, бо (только что проверенно и сообщается на правах tip :) ) если вызвать TAction.Execute суррогатом, то ActionComponent будет последний вызвавший Action компонент, либо Nil...
фигеть можно...
Игорь Шевченко (2006-09-29 16:58:00) [2]Palladin © (29.09.06 16:23) [6]
Эт ты зря. Вот например, есть куча форм, на тулбаре нажали кнопочку, данные надо взять из активной формы:
if Screen.ActiveForm is TfrmExplorer then begin
with TfrmExplorer(Screen.ActiveForm) do
Properties1Click (Sender);
end;
Palladin (2006-09-29 16:57:00) [3]ну вот уже интересней... подробности полезли наружу...
тогда открою страшную тайну, у TAction есть свойство ActionComponent
Игорь Шевченко (2006-09-29 16:55:00) [4]
> Как узнать на какой именно форме произошел вызов действия?
Screen.ActiveForm ?
Sergey_b (2006-09-29 16:51:00) [5]
> Palladin
Методы одинаковые, только данные берутся и возвращаются из формы, где нажата кнопка
Palladin (2006-09-29 16:25:00) [6]Рекомендую сделать два Action'а, общие моменты которых вывести в отдельный метод. Что-б много не писать :)
Palladin (2006-09-29 16:23:00) [7]Да почему, пытайся, но использовать один Action для разных действий все равно что ходить с зонтиком зимой и от снега укрываться.
Sergey_b (2006-09-29 16:19:00) [8]
> Action'ы предназначены для назначения одинаковой реакции
> для разных контролов.
Это однозначно?
Пытаться не стоит?
Sergey_b (2006-09-29 16:18:00) [9]
> Elen
Не то. Сендер создается экшенменеджером. Кнопочки на ActionToolBar. Есть несколько тулбаров на разных формах, но с одинаковыми экшн. Надо узнать на какой именно форме была нажата кнопка и, в зависимости от этого, передать нужные параметры.
Elen (2006-09-29 16:18:00) [10]Пардон, чепуху горожу...
Palladin (2006-09-29 16:17:00) [11]Action'ы предназначены для назначения одинаковой реакции для разных контролов.
Elen (2006-09-29 16:13:00) [12]Поробовать обращаться к parent сендера, который передается в обработчик, и наверное при обращении нужно проверять класс родителя, а то ведь компонентик и в контейнере может быть