Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

Где нажата кнопка   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.065 c
1-1157211212
Вася
2006-09-02 19:33
2006.10.15
Перехват клавиш


3-1155295880
DelphiLexx
2006-08-11 15:31
2006.10.15
TFIBDataSet перемещение записи


1-1157332401
Viacheslav
2006-09-04 05:13
2006.10.15
Чтобы сообщения клавы получала только форма?


3-1155627561
Death
2006-08-15 11:39
2006.10.15
Создание индексов в THalcyonDataSet


2-1159636272
novice
2006-09-30 21:11
2006.10.15
Вопрос по SysUtils routines..