Консультация № 31183
10.12.2005, 04:04
0.00 руб.
0 2 2
Доброго времени суток уважаемые эксперты! Подскажите пожалуйста, как найти все каталоги на диске и создать пункты с ссылками на них в PopUpMenu? Зарание спасибо!!!

Обсуждение

давно
Мастер-Эксперт
425
4118
10.12.2005, 05:14
общий
это ответ
Здравствуйте, MaCC!
Найти можно с помощью связки функций FindFirst()\\FindNext().
Однако я сильно сомневаюсь в целесообразности создания на этой основе Popup-меню. У меня на диске, например, около 40 тысяч каталогов. Представляете, какое это будет меню. Подумайте хорошенько. Меню создавать целесообразно, если там не больше десятка пунктов.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
11.12.2005, 09:29
общий
это ответ
Здравствуйте, MaCC!
А насколько разумно выводить все каталоги компа в меню (Их же много!!!:)). Поддиректории одного каталога ещё куда не шло. Вот пример для вывода в Listbox, переделать на вывод в menu думаю не составит труда.

Приложение:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}const path=‘C:\‘;procedure TForm1.FormCreate(Sender: TObject);var f:tsearchrec;begin findfirst(path+‘\*‘,faAnyFile,f); findnext(f); while (findnext(f)=0) do if (f.attr and fadirectory)<>0 then ListBox1.Items.Add(f.name); findclose(f);end;end.
Форма ответа