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

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

Вопрос по ActionList [D5]


kserg@ukr.net ©   (2002-01-23 15:19:00) 

Создаю обычное MDI-приложение, главная форма которого содержит MainMenu и ToolBar.
Нектор. пункты MainMenu дублирую в Child-форме. Тогда при открытии этих Child-форм её MainMenu корректно сливается с MainMenu главной формы. Ессно меню и кнопки "увязываю" через ActionList.
Так вот, пункты MainMenu отрабатывают чётко, а вот кнопки "теряют" связь с Child-формой, в которой они "живут"
(видят только 1-ю открытую Child-форму)
Как справиться с данной проблемой?

Заранее благодарен.


kserg@ukr.net   (2002-01-24 10:20:00) [1]

>AlexR_R - спасибо за поддержку.
Вообщем твои подсказки навели на мысль и я поступил след.образом:
на событие FormActivate дочерней формы повесил событие
определяющее Action кнопки главной формы. Теперь всё ОК.

procedure TMDIChild.FormActivate(Sender: TObject);
begin
MainForm.ToolButton_AddNew.Action := ActionEdit_AddNew;
end;


AlexR_R   (2002-01-23 18:35:00) [2]

Ну вообщем если сам все не понял, то покажи код главной формы.


kserg@ukr.net   (2002-01-23 17:57:00) [3]

Извини, неясно объяснил.
У меня в приложении два MainMenu: в главной форме и дочерней.
Ессно, в меню главной формы - общие для всех форм пункты,
в меню дочерней формы - "личные". При чём в Child-форме свой ActionList.
При открытии Child-формы оба меню благополучно сливаются, а за счет своего ActionList "личные" пункты корректно работают с породившей её Child-формой.
А вот ToolBar у меня один - на главной форме.
И кнопки для "личных" пунктов меню я задаю как ссылку на соот-щий Action дочерней формы MDIChild.Edit_AddNew.
Ну и получается, что кнопка EDIT всё время работает только с первой созданной дочерней формой...


AlexR_R   (2002-01-23 16:54:00) [4]

Я не совсем понял в чем проблема.
Два toolbara на разных формах вроде и не должны сливаться.
И видеть их ты будешь на той форме где поместил.
Лучше на главной. Хотя это вопрос вкуса.
А дальше то что происходит на нажатие кнопки, если она на главной форме и должна обратится к Child надо отрабатывать
через TChildForm(MainForm.ActiveMDIChild)
Этот вызов должен быть прописан в Action


kserg@ukr.net   (2002-01-23 16:22:00) [5]

При создании приложения я взял за основу классический образец
MDI-application, где есть единственный вызов при создании
дочерней формы
...
Child := TMDIChild.Create(Application);


AlexR_R   (2002-01-23 16:11:00) [6]

Как ты обращаешься к Child-форм. Через MainForm.ActiveMDIChild
или как нибудь по другому?


Наверх

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