Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизОбъединение главных меню Найти похожие ветки
← →
Closer (2004-02-15 13:18) [0]Имеются три формы, на каждой из них расположено MainMenu. Я хочу добавить к главному меню на первой форма главные меню с двух других форм с помощю метода Merge:
MainMenu1.Merge(Form2.MainMenu1);
MainMenu1.Merge(Form3.MainMenu1);
В результате на главной форме остаётся только меню от 3 формы. Что мне надо сделать чтобы добиться желаемого результата?
P.S.
Макет проекта - http://closer.at.tut.by/tmm.zip
← →
Defunct (2004-02-15 16:18) [1]Лезем в архивы..
Что же там есть..
ага нашел.
Может поможет
// Процедура заменяет содержимое пункта MainMenu, пунктом из другого меню.
Procedure ReplaceMenuItem(Source,Destination:TMenuItem);
Var I:Integer;
MI:TMenuItem;
Begin
For I:=Destination.Count-1 DownTo 0 Do
Begin
Destination.Items[0].Destroy;
End;
For I:=0 To Source.Count-1 Do
Begin
MI:=TMEnuItem.Create(Application);
MI.OnClick:=Source.Items[i].OnClick;
MI.Caption:=Source.Items[i].Caption;
MI.Checked:=Source.Items[i].Checked;
MI.Enabled:=Source.Items[i].Enabled;
MI.Bitmap:=Source.Items[i].BitMap;
MI.Action:=Source.Items[i].Action;
MI.ImageIndex:=Source.Items[i].ImageIndex;
MI.Name:=Format(Source.Name+"TMP%D",[i]);
Destination.Add(MI);
If Source.Items[i].Count>0 Then
ChargeMenu(Source.Items[i],Destination.Items[i]);
End;
Destination.Caption:=Source.Caption;
Destination.Visible:=True;
End;
← →
Defunct (2004-02-15 16:19) [2]Причем заменяется полностью с учетом всех вложенных меню.
← →
Defunct (2004-02-15 16:23) [3]извините.. поменял название процедуры, забыв про рекурсивную ссылку. Вот оригинальный вариант процедуры:
// Процедура заменяет содержимое пункта MainMenu, пунктом из другого меню.
Procedure ReplaceMenuItem(Source,Destination:TMenuItem);
Var I:Integer;
MI:TMenuItem;
Begin
For I:=Destination.Count-1 DownTo 0 Do
Begin
Destination.Items[0].Destroy;
End;
For I:=0 To Source.Count-1 Do
Begin
MI:=TMEnuItem.Create(Application);
MI.OnClick:=Source.Items[i].OnClick;
MI.Caption:=Source.Items[i].Caption;
MI.Checked:=Source.Items[i].Checked;
MI.Enabled:=Source.Items[i].Enabled;
MI.Bitmap:=Source.Items[i].BitMap;
MI.Action:=Source.Items[i].Action;
MI.ImageIndex:=Source.Items[i].ImageIndex;
MI.Name:=Format(Source.Name+"TMP%D",[i]);
Destination.Add(MI);
If Source.Items[i].Count>0 Then
RepalceMenuItem(Source.Items[i],Destination.Items[i]);
End;
Destination.Caption:=Source.Caption;
Destination.Visible:=True;
End;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c