procedure
SearchDirectory(MainMenu: TMainMenu; MenuItem: TMenuItem; Level: Int32;
Directory:
String
);
var
SubMenuItem: 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
if
Level =
0
then
begin
MenuItem := TMenuItem
.
Create(MainMenu);
MenuItem
.
Caption := SearchRec
.
Name;
MainMenu
.
Items[
0
].Add(MenuItem);
SearchDirectory(MainMenu, MenuItem, Level +
1
,
Directory + SearchRec
.
Name + '\')
end
else
begin
SubMenuItem := TMenuItem
.
Create(MainMenu);
SubMenuItem
.
Caption := SearchRec
.
Name;
MenuItem
.
Insert(
0
, SubMenuItem);
SearchDirectory(MainMenu, SubMenuItem, Level +
1
,
Directory + SearchRec
.
Name + '\')
end
;
end
;
Until
FindNext(SearchRec) <>
0
;
FindClose(SearchRec);
end
;