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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2013, 09:16   #1
romanzi
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 87
По умолчанию Получить список файлов в папке

Есть папка с изображениями (разных форматов) и нужно все эти изображения вывести на форму.
Я создаю массив из динамических изображений, потом ищу нужные изображения в папке, записывая их путь в ListBox. И затем загружаю их на форму.
Вот только проблема: моя функция не показывает пути до изображений, расположенных в папках.

P.S. Как можно было бы разместить на форме 20-30 картинок так, чтобы они не закрывали друг друга и были в ряд (по 3-4 по горизонтали и хз сколько по диагонали могли бы быть при форме 400 х 700)
Всем спасибо за помощь.

Код:
procedure GetAllFiles( Path: string; Lb: TListBox );
var
sRec: TSearchRec;
isFound: boolean;
begin
isFound := FindFirst( Path + '\*.*', faAnyFile, sRec ) = 0;
while isFound do
begin
if ( sRec.Name <> '.' ) and ( sRec.Name <> '..' ) then
begin
if ( sRec.Attr and faDirectory ) = faDirectory then
Lb.Items.Add( Path + '\' + sRec.Name );
end;
Application.ProcessMessages;
isFound := FindNext( sRec ) = 0;
end;
getImages(lb);
FindClose( sRec );
end;
Код:
list := Tlistbox.Create(Form3);
    list.Parent := Form3;
    //list.visible := false;
    GetAllFiles('\Project\data\images', list);
Код:
procedure getImages(Lb: TListBox);
var
I: integer;
begin
    if lb.Count > 99 then  // guard
      begin
        lb.Count := 99;
      end;

    for I := 1 to lb.Count - 1 do
      begin
         images[i] := Timage.Create(Form3);
         images[i].Parent := Form3;
         images[i].Picture.LoadFromFile(lb.Items[i - 1]);
         if I = 1 then
              begin
         images[i].Top := 100;
         images[i].Left := 100;
              end;

         images[i].Left := images[i-1].Left + 100;
         images[i].Top := images[i-1].Top + 100;

      end;

end;

Последний раз редактировалось romanzi; 20.08.2013 в 09:19.
romanzi вне форума Ответить с цитированием
Старый 20.08.2013, 09:37   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Для создания собственного аналога Exproler(Проводник) читайте книгу "Библия Delphi"(Флёнов)
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 20.08.2013, 10:11   #3
romanzi
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 87
По умолчанию

Мне не нужен проводник.
Мне нужно вывести картинки из одной единственной папки на форму, чтобы дальше работать с ними.
romanzi вне форума Ответить с цитированием
Старый 20.08.2013, 10:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
моя функция не показывает пути до изображений, расположенных в папках.
Ну и зачем тебе путь, если у тебя он один на все картинки?
Цитата:
Как можно было бы разместить на форме 20-30 картинок
Рисовать их в DrawGrid. Допустим считывать в ImageList - получишь массив картинок, а потом в гриде отрисовывать в ячейках - получишь плитку картинок.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2013, 23:48   #5
romanzi
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 87
По умолчанию

Ну и как тогда можно получить картинки, если имена их могут быть разные?
Получить адесса всех изображений в одной папке и выводить их.
romanzi вне форума Ответить с цитированием
Старый 21.08.2013, 06:04   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от romanzi Посмотреть сообщение
Мне не нужен проводник.
Мне нужно вывести картинки из одной единственной папки на форму, чтобы дальше работать с ними.
Ну программно создавай их. Кто мешает?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 21.08.2013, 07:18   #7
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Может, дело в том, что ты подпапки ищешь в своей папке.
Так подойдёт?
Код:
if ( sRec.Attr and faDirectory ) <> faDirectory then Lb.Items.Add( Path + '\' + sRec.Name);
superedward вне форума Ответить с цитированием
Старый 21.08.2013, 08:19   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как тогда можно получить картинки, если имена их могут быть разные?
Понятное дело разные. Тот файл, что твоя процедура найдет запоминай в StringList - будет тебе список файлов. Или проще - компонент FileListBox. Настроишь на нужный каталог, и получишь список файлов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Asp.Net отобразить список файлов на в папке MORPEH Общие вопросы .NET 1 06.04.2012 12:46
Как получить список файлов в папке или деректории? stdio Общие вопросы C/C++ 3 05.03.2012 22:17
вывести список всех файлов в папке, delphi paravoz1k Общие вопросы Delphi 1 06.08.2011 17:39
Определить и вывести список файлов в папке SMShrek Microsoft Office Excel 6 17.05.2010 16:43
Получить список файлов и папок. gusluk Общие вопросы Delphi 3 10.03.2009 12:49