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

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

TMainMenu :чтобы меню разместилось на всех формах [D7, WinXP]


timonissimo ©   (2007-05-28 17:51:00) 

Не подскажите вот что.
Есть программа из нескольких форм (ну, штук десять).
Хочу сделать по-человечески, т.е. с компонентом TMainMenu.
Можно сделать так, чтобы меню разместилось на всех формах? Я не очень соображаю в Объекто-ориентированном...
Что для этого надо сделать?
Создать новый класс формы с подобным меню или как?


timonissimo   (2007-05-29 11:48:00) [1]

Спасибо! Будем пробовать!


{RASkov}   (2007-05-29 11:42:00) [2]

> акивна..

*активна


{RASkov}   (2007-05-29 11:41:00) [3]

> [7] timonissimo ©   (29.05.07 10:05)
> А в данном случае переменная Menu это свойство TFormN?

Да... все верно. И еще один "косячок" при таких "прыжках" меню, будет менятся ClientHeight форм. Нужно будет это учитывать....
Или как вариант на FormDeactivate(); вместо присваения nil - можно присваивать TmpMenu.
TmpMenu - это обычное TMainMenu, можно всего-лишь с одним пунктом.... оно использоваться не будет, чисто для занятия места на форме пока форма не акивна..


timonissimo   (2007-05-29 10:05:00) [4]

А в данном случае переменная Menu это свойство TFormN?
Т.е. фактически TFormN.Menu?
Просто у меня ща delphi нет, не могу глянуть...


{RASkov}   (2007-05-29 03:18:00) [5]

> и затем нужной форме присваивать это меню, предворительно убрав его с "предыдущей формы".

procedure TFormN.FormActivate();
begin
 Menu := DataModul.MainMenu;
end;

procedure TFormN.FormDeactivate();
begin
 Menu := nil;
end;


{RASkov}   (2007-05-29 02:16:00) [6]

Еще как вариант, можно меню положить в ДатаМодуль и там описать обработчики итемов и затем нужной форме присваивать это меню, предворительно убрав его с "предыдущей формы". Конкретное меню может присутствовать только на одной форме.


Amoeba   (2007-05-28 18:33:00) [7]


> timonissimo ©   (28.05.07 18:24) [2]
>
> я вот читаю про свойство AutoMerge
> наверное его надо использовать?...

Только если разрабатывается MDI приложение.


Loginov Dmitry   (2007-05-28 18:29:00) [8]

Используй наследование форм


timonissimo   (2007-05-28 18:24:00) [9]

я вот читаю про свойство AutoMerge
наверное его надо использовать?...


Jeer   (2007-05-28 18:19:00) [10]


> Создать новый класс формы с подобным меню


Вполне.


Наверх

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