Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.29;
Скачать: CL | DM;

Вниз

Объединение главных меню   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
4-94226
VNavigator
2003-12-25 00:43
2004.02.29
Wallpaper


1-93930
anod
2004-02-15 00:43
2004.02.29
Create form


14-94095
Отшельник
2004-02-03 20:06
2004.02.29
CHM файл


14-94180
VStinger
2004-02-07 02:09
2004.02.29
клиент Oracle


1-93922
Alexis
2004-02-15 11:46
2004.02.29
информация по System Tray