Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];
ВнизГде нажата кнопка Найти похожие ветки
← →
Sergey_b (2006-09-29 16:01) [0]Доброго времени суток всем.
В ActionManager определены действия, и вызываются они из разных форм(одни и те же). Как узнать на какой именно форме произошел вызов действия? В зависимости от этого меняется цель действия(откуда вызов, та форма и является целью).
← →
Elen © (2006-09-29 16:13) [1]Поробовать обращаться к parent сендера, который передается в обработчик, и наверное при обращении нужно проверять класс родителя, а то ведь компонентик и в контейнере может быть
← →
Palladin © (2006-09-29 16:17) [2]Action"ы предназначены для назначения одинаковой реакции для разных контролов.
← →
Sergey_b (2006-09-29 16:18) [3]
> Elen
Не то. Сендер создается экшенменеджером. Кнопочки на ActionToolBar. Есть несколько тулбаров на разных формах, но с одинаковыми экшн. Надо узнать на какой именно форме была нажата кнопка и, в зависимости от этого, передать нужные параметры.
← →
Elen © (2006-09-29 16:18) [4]Пардон, чепуху горожу...
← →
Sergey_b (2006-09-29 16:19) [5]
> Action"ы предназначены для назначения одинаковой реакции
> для разных контролов.
Это однозначно?
Пытаться не стоит?
← →
Palladin © (2006-09-29 16:23) [6]Да почему, пытайся, но использовать один Action для разных действий все равно что ходить с зонтиком зимой и от снега укрываться.
← →
Palladin © (2006-09-29 16:25) [7]Рекомендую сделать два Action"а, общие моменты которых вывести в отдельный метод. Что-б много не писать :)
← →
Sergey_b (2006-09-29 16:51) [8]
> Palladin
Методы одинаковые, только данные берутся и возвращаются из формы, где нажата кнопка
← →
Игорь Шевченко © (2006-09-29 16:55) [9]
> Как узнать на какой именно форме произошел вызов действия?
Screen.ActiveForm ?
← →
Palladin © (2006-09-29 16:57) [10]ну вот уже интересней... подробности полезли наружу...
тогда открою страшную тайну, у TAction есть свойство ActionComponent
← →
Игорь Шевченко © (2006-09-29 16:58) [11]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 17:11) [12]
> Эт ты зря.
Эт точно, бо (только что проверенно и сообщается на правах tip :) ) если вызвать TAction.Execute суррогатом, то ActionComponent будет последний вызвавший Action компонент, либо Nil...
фигеть можно...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c