Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.03.2009, 12:43
-SnOOpY- -SnOOpY- вне форума
Прохожий
 
Регистрация: 18.03.2009
Сообщения: 2
Репутация: 10
По умолчанию Вывод дерева меню, Delphi

Имеется некое меню MainMenu1. По нажатию на кнопку требуется вывести его структуру в Memo в формате :
Меню
-Подменю1
--Подподменю1
--Подподменю2
-Подменю2
--Подподменю3
--Подподменю3

Вот код, работающий в нескольких частных случаях :
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k,l: byte;
    t: tmenuitem;
begin
 t:=mainmenu1.items;
 for i:=0 to t.count-1 do
  begin
   memo1.Lines.Add(t[i].caption);
   for j:=0 to t[i].Count-1 do
   begin
    memo1.Lines.Add('-'+t[i].Items[j].Caption);
    for k:=0 to t[i].items[j].count-1 do
     begin
      memo1.Lines.Add('--'+t[i].Items[j].items[k].caption);
     end;
   end;
  end;

end;
Требуется его доработать.
Заранее спасибо за помощь !
Ответить с цитированием
  #2  
Старый 18.03.2009, 16:30
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
Сообщение

При неизвестном кол-ве вложений используй рекурсию.
Код:
procedure AddMenuItem(m:TMenuItem; shift:integer);
var i:integer;
begin
  for i:=0 to m.count-1 do
   begin
    Form1.Memo1.Lines.Add( StringOfChar('-',shift) + t[i].caption );
    AddMenuItems( t.items, shift+1 );
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  AddMenuItems( mainmenu1.items, 0 );
end;
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #3  
Старый 19.03.2009, 11:02
-SnOOpY- -SnOOpY- вне форума
Прохожий
 
Регистрация: 18.03.2009
Сообщения: 2
Репутация: 10
По умолчанию

Всё бы хорошо, но ничего не работает, ибо обращение к подменю должно происходить по items[x][y][z][....
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025