![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по 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
или как нибудь по другому?