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

Вниз

Как по существующему меню приложения построить дерево   Найти похожие ветки 

 
Mitrofan   (2004-06-18 11:58) [0]

Есть приложение. У него есть меню, причем стоение этого меню не известно (сколько и где вложенности не известно). Как построить дерево по данному меню.
Спасибо


 
TUser ©   (2004-06-18 12:46) [1]

Рекурсией


 
Mim1 ©   (2004-06-18 13:10) [2]

procedure TForm1.FormCreate(Sender: TObject);
procedure xadd(mi:tmenuitem;ti:TTreeNode);
var i:integer;
begin
 for i:= 0 to mi.count-1 do
   xadd(mi[i],TreeView1.items.AddChild(ti,mi[i].caption))
end;
begin
 xadd(MainMenu1.Items,nil);
end;


 
Mitrofan   (2004-06-18 15:24) [3]

А обратная задача как будет выглядеть ?
 Т.е. имеем дерево в виде TTreeView и требуется построить меню.


 
Mim1 ©   (2004-06-18 15:33) [4]

:(
такой же рекурсией
пожалуйста


 
Mitrofan   (2004-06-18 15:37) [5]

Но MainMenu1.Items есть только метода Add, и нет метода
AddChild;


 
Mim1 ©   (2004-06-18 15:44) [6]


> [5] Mitrofan   (18.06.04 15:37)
> Но MainMenu1.Items есть только метода Add, и нет метода
>
> AddChild;


Ага, я это знаю, и что это меняет?
Даю намек резултат выпоенения метода add класса tmenuitem - ссылка на обьект типа tmenuitem.


 
Mitrofan   (2004-06-23 09:24) [7]

Совсем запутался с этой рекурсией.
Помогите строчками кода, плиззззз.


 
Polevi ©   (2004-06-23 10:07) [8]

procedure BuildMenu(menu:TMenu;TreeView:TTreeView);

 procedure BuildItem(mi:TMenuItem; node:TTreeNode);
 var
   n:TTreeNode;
   i:integer;
 begin
   n:=TreeView.Items.AddChild(node,mi.Caption);
   for i:=0 to mi.Count-1 do
     BuildItem(mi[i],n);
 end;

var
 i:integer;
 root:TTreeNode;
begin
 root:=TreeView.Items.Add(nil,"Menu");
 for i:=0 to menu.Items.Count-1 do
   BuildItem(menu.Items[i],root);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 BuildMenu(mainMenu1,TreeView1);
end;


 
Polevi ©   (2004-06-23 10:09) [9]

ааа, сорри ступил



Страницы: 1 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1087356417
Господин Уэф!
2004-06-16 07:26
2004.07.11
Рушится таблица с автоинкрементным полем.


1-1088246843
CrazyHacKeRs
2004-06-26 14:47
2004.07.11
Помогите с DHTMLEdit (Active X)


1-1087928731
georg
2004-06-22 22:25
2004.07.11
StringGrid Фиксирование ячеек


1-1088451099
romeo
2004-06-28 23:31
2004.07.11
Есть DC, как для него создать Pen, рисующий XOR ом?


4-1085718626
Alibaba
2004-05-28 08:30
2004.07.11
Уважаемые мастера подскажите плиз, как в сервисе установить