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