Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2009, 12:46   #1
Kuzya59
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 22
По умолчанию Динамическое создание DirectoryListBox

Здравствуйте. Понадобилось осуществить следующее. Есть указанная директория. Нужно в компонент класса TStringList внести все под-директории которые в ней содержаться. В случае с формой поступаю так. Помещаю на форму компонент DirectoryListBox и там где надо пишу (dir - указанная папка):

Код:
dl.Directory := dir;
for i := dl.ItemIndex+1 to dl.Items.Count-1 do
  dirs.Add(dl.Items[i]);
После этого в dirs лежит то что нужно.
Но вся соль в том что тоже самое мне нужно проделать в консольном приложении. Тут начинаются проблемы. Состряпал функцию:

Код:
function getDirList(dir: String): TStringList;
var
  dirs: TStringList;
  dl: TDirectoryListBox;
  i: integer;
begin
  dl := TDirectoryListBox.Create(nil);
  dirs := TStringList.Create;

  dl.Directory := dir;
  for i := dl.ItemIndex+1 to dl.Items.Count-1 do
    dirs.Add(dl.Items[i]);

  Result := dirs;
end;
При использовании она выдаёт вот такую ошибку ( это ругается TDirectoryListBox )
Цитата:
Control '' has no parent window.
Этому классу нужно для работы свойство Parent, класс TWinControl.
Порывшись в гугле я понял что это что-то типа ссылки на форму. Но я ведь в консоли =(. Подскажите пожалуйста, как заставить его работать в консольном варианте?
Kuzya59 вне форума Ответить с цитированием
Старый 21.09.2009, 12:51   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а может просто искать папки через FindFirst/FindNext/FindClose?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.09.2009, 12:52   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Все правильно. Не используй VCL в консоли. Они для визуальзации предназначены.
Просто напиши функцию на основе FindFirst...FindNext для получения списка папок, примеров тут уже выкладывалось море - это лучше будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.09.2009, 12:53   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
procedure ListFileDir(Path: string; FileList: TStrings);
 var
   SR: TSearchRec;
 begin
   if FindFirst(Path + '\*.*', faAnyFile, SR) = 0 then
   begin
     repeat
       if (SR.Attr = faDirectory) then
          FileList.Add(SR.Name);
     until FindNext(SR) <> 0;
     FindClose(SR);
   end;
 end;
вот процедура выводи ее в StringList и будет тебе счастье
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 21.09.2009, 16:37   #5
Kuzya59
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 22
По умолчанию

Всем большое спасибо. В особенности ОДИНОЧЕСТВО В СЕТИ. Ваш способ просто супер.
Kuzya59 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическое создание компонентов DOLBY Компоненты Delphi 10 17.10.2010 14:03
Динамическое создание массива Juggernaut Общие вопросы Delphi 3 20.05.2009 15:13
Динамическое создание paintbox-a. blackstersl Общие вопросы Delphi 1 12.05.2009 19:17
Динамическое создание объекта Fruit Общие вопросы Delphi 5 24.01.2008 11:00
Динамическое создание объектов LepihinMS Общие вопросы Delphi 18 05.07.2007 23:31