Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как из TAction.Execute узнать, на какой форме кликнули меню


umbra ©   (2008-04-21 12:56:00) 

В приложении есть главная форма и датамодуль. В результате действий пользователя может быть создана еще одна (или не одна) немодальная форма. На главной форме и на каждой из вторичных есть TActionMainMenuBand. Они все цепляются к TActionManagerв модуле данных и пункты меню совпадают. Собственно вопрос: как при клике на пункт меню узнать, в какой форме это произошло - в главной или вторичной?


umbra   (2008-04-21 13:52:00) [1]


> Screen.ActiveForm

и правда. Нормальные герои всегда идут в обход :)


Ins   (2008-04-21 13:32:00) [2]


> Тут, имхо можно, использовать, напрмер, посетителя.


Мдя :))) ИМХО, тут нужно заглянуть в справку по классу TAction ;)


Игорь Шевченко   (2008-04-21 13:32:00) [3]


> как при клике на пункт меню узнать, в какой форме это произошло
> - в главной или вторичной?


Screen.ActiveForm ?


umbra   (2008-04-21 13:30:00) [4]


> Покажи (код) как ты подцепляешься…
>

Да какой тут код? все сделано в редакторе TActionManager'а


Kolan   (2008-04-21 13:25:00) [5]

> Меню в главной и вспомогательных формах совпадают, потому
> как действия там предполагаются одни и теже. Главная фома
> — это список доступных форм отчетов по датам, вспомогательные
> — отображение конкретного отчета.

То есть я вижу гл окно и второе. У них одинаковые меню. И я могу кликнуть что в гл. форме что во второй каккой-нибудь пункт и будет вызван один и тот же экшен, так?

Тут, имхо можно, использовать, напрмер, посетителя.

Покажи (код) как ты подцепляешься…


Ins   (2008-04-21 13:22:00) [6]


> поскольку Sender - это TAction

Правильно, а у класса TAction есть свойство - ActionComponent, это будет пункт меню.


umbra   (2008-04-21 13:14:00) [7]


> Sender.Owner

Это будет класс датамодуля, поскольку Sender- это TAction


> Они все цепляются к TActionManager в модуле данных и пункты
> меню совпадают.
> Можно подробнее…
>

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


Kolan   (2008-04-21 12:58:00) [8]

Возможно по Sender.Owner если понял описание.

Но что-то тут не так.
Вот это: Они все цепляются к TActionManager в модуле данных и пункты меню совпадают.
Можно подробнее…


Наверх

Титульная страница Поиск, карта сайта Написать письмо