Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизКак по существующему меню приложения построить дерево Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c