23.08.2017, 21:25
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Ну, если нигде не накосячил, то как то так:
Код:
procedure SearchDirectory(Menu: TMainMenu; MenuItem: TMenuItem; Directory: String);
var
NewItem: TMenuItem;
SearchRec: TSearchRec;
begin
if FindFirst(IncludeTrailingPathDelimiter(Directory) + '*.*', faDirectory, SearchRec) = 0 then
Repeat
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') and
((SearchRec.Attr and faDirectory) <> 0) then
begin
NewItem := TMenuItem.Create(Menu);
NewItem.Caption := SearchRec.Name;
If MenuItem = Nil
Then Menu.Items.Add(NewItem)
Else MenuItem.Items.Add(NewItem);
SearchDirectory(MainMenu, NewItem, Directory + SearchRec.Name)
end;
Until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
...
SearchDirectory(Form1.MainMenu1, Nil, 'c:/work');
...
|