Показать сообщение отдельно
  #1  
Старый 23.08.2017, 18:22
Romix Romix вне форума
Начинающий
 
Регистрация: 10.02.2008
Сообщения: 136
Версия Delphi: XE2
Репутация: 41
Восклицание Динамическое заполнение MainMenu

Доброе время суток, уважаемы форумчане. Возникла необходимость заполнить главное меню найденными директориями с их субдиректориями. Директорий будет немного. Непонятным чудом пришёл к такому коду(сильно не пинайте)
Код:
procedure SearchDirectory(MainMenu: TMainMenu; I: Int32; Directory: String);
var
MenuItem: TMenuItem;
  SearchRec: TSearchRec;
begin
  if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
    Repeat
      if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') and
        ((SearchRec.Attr and faDirectory) = faDirectory) then
      begin
      MenuItem:=TMenuItem.Create(MainMenu);
      MenuItem.Caption:=SearchRec.Name;
        MainMenu.Items[i].Add(MenuItem);
        SearchDirectory(MainMenu, I + 1, Directory + SearchRec.Name + '\');
      end;
    Until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;
Вызываю процедуру так
Код:
SearchDirectory(MainMenu, 0, '');

Наставьте неуча на путь истинный. Как правильно сделать рекурсию, что бы подпункты MainMenu тоже заполнялись?
Ответить с цитированием