Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1088096196
rOOse
2004-06-24 20:56
2004.07.11
Использование реестра


1-1088512200
Ben
2004-06-29 16:30
2004.07.11
Работа с текстом в Richedit е


3-1086756262
maxi
2004-06-09 08:44
2004.07.11
SQL запрос


6-1084521787
xman
2004-05-14 12:03
2004.07.11
Sockets


1-1087959119
Sirus
2004-06-23 06:51
2004.07.11
Access violation достал....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский