function ShowFiles(path : String) : String;
var
clicked : Command;
s, p, i : integer;
files : String;
begin
ShowFiles := '';
repeat
ShowMenu(path, CH_IMPLICIT);
addCommand(cmdOk);
addCommand(cmdSelect);
if length(path)<>0 then begin
i := menuAppendString('..');
files := jsr75.get_dirs(path);
files := files+jsr75.get_files(path);
end else
files := jsr75.get_roots;
p := pos(files, '|');
while p>0 do begin
i := menuAppendString(copy(files, 0, p));
files := copy(files, p+1, length(files));
p := pos(files, '|');
end;
repeat
clicked := getClickedCommand;
until clicked <> emptyCommand;
path := path + ui.list_get_string(menuGetSelectedIndex);
until clicked = cmdSelect;
ShowFiles := path;
end;
нет хождения назад, но думаю это и сам можешь сделать.