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

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

MDI [D5, Win95/98]


First_May ©   (2002-10-17 10:32:00) 

Подскажите пожалуйста, как можно создать меню в дочерней форме MDI проекта?


Reindeer Moss Eater   (2002-10-18 14:11:00) [1]

У меня это делается таким способом:
На MDIChild форме есть TMainMenu и TToolBar.

В OnCreate формы выполняется код:
SetToolBarFromMenu(ToolBar1,MainMenu1.Items);
Menu:=nil;

procedure SetToolBarFromMenu(ToolBar: TToolBar; Items: TMenuItem);
var i: integer; Button: TToolButton;
begin
for i := Pred(Items.Count) downto 0 do
begin
Button := TToolButton.Create(ToolBar.Owner);
with Button do
begin
Parent := ToolBar;
MenuItem := Items[i];
Grouped := True;
AutoSize := True;
end;
end;
ToolBar.Font.Assign(Screen.MenuFont);
end;


First_May   (2002-10-18 14:05:00) [2]

Ну а если я хочу сделать именно так!!!


Переяслов Г   (2002-10-17 19:22:00) [3]

Вообще-то по сттандартам интерфейса меню в MDI-child делать не принято. Может быть, имеет смысл использовать другие контролы?


First_May   (2002-10-17 18:31:00) [4]

Так как быть??? :))


Игорь Шевченко   (2002-10-17 17:53:00) [5]

Угу, ошибся я. Извиняюсь.
Вот почему нельзя: (forms.pas)

if not (Menu.AutoMerge or (FormStyle = fsMDIChild))or
(csDesigning in ComponentState) then
begin
if HandleAllocated then
begin
if Windows.GetMenu(Handle) <> Menu.Handle then
Windows.SetMenu(Handle, Menu.Handle);
Value.WindowHandle := Handle;
end;
end


First_May   (2002-10-17 17:21:00) [6]

Других вариантов нет???


First_May   (2002-10-17 14:09:00) [7]

Оно ничего не дает. Свойство GroupIndex тоже не подходит...


Игорь Шевченко   (2002-10-17 12:39:00) [8]

У меню есть свойство AutoMerge


First_May   (2002-10-17 12:02:00) [9]

Проблема в том, что если есть меню в MDIForm и MDIChild, то при создании меню из MDIChild добавляется в главное меню. А хотелось бы, что бы каждая форма имела бы свое меню и находилось бы там, где и должно ей быть как я хочу.


Игорь Шевченко   (2002-10-17 11:11:00) [10]

А какие проблемы ?


Наверх

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