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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2014, 12:25   #1
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию Проблемы сортировки...

Имеется папка, я из неё загружаю картинки в ListBox.
Вот как выглядит список картинок в Windows:
//****************
1.jpg
2.jpg
3.jpg
...
9.jpg
10.jpg
11.jpg
...
19.jpg
20.jpg
21.jpg
//****************
А вот как выглядит этот список в ListBox
//****************
1.jpg
10.jpg
11.jpg
...
19.jpg
2.jpg
20.jpg
21.jpg
3.jpg
...
9.jpg
//****************
//==========================
Соответственно у меня вопрос, как можно сделать так, что бы список загружался в ListBox, так же как и в Винде?
-----
p.s. Я гуглил, предлагают километровые коды, которые очень криво работают....
Janger вне форума Ответить с цитированием
Старый 08.11.2014, 12:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так и должно быть. Сортировка строк именно так и расставляет.
Не хочешь попробовать ShellListView?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2014, 12:46   #3
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Так и должно быть. Сортировка строк именно так и расставляет.
Не хочешь попробовать ShellListView?
Вообще, мне не нужно их выводить списком, я просто показываю что сортировка тут, не такая как мне нужна....
Думаете компонент мне поможет?

Ладно, спрошу по другому...
Как из ShellListView получить список компонентов?

Ещё проще, как получить количество записей в ShellListView ? Имя по индексу, я могу получить...
Теперь нужно цикл написать, что бы он по всем файлам пробегал.

Последний раз редактировалось Janger; 08.11.2014 в 13:36.
Janger вне форума Ответить с цитированием
Старый 08.11.2014, 13:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Думаете компонент мне поможет?
Он для файлов предназначен. Всмысле для работы с файловой системой, ибо юзает интерфейсы эксплорыря.
Цитата:
Как из ShellListView получить список компонентов?
А хелп что говорит? У него должны быть свойства, получающие список файлов в директории. У меня нет Делфи под рукой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2014, 13:57   #5
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию Тему можно закрывать

В общем, я решил проблему. Большое спасибо Stilet, навёл меня на мыслю.
Что нужно?
1) Button - вкладка Standard
2) ListBox - вкладка Standard
3) ShellListView - вкладка Samples
4) ShellListView1.Root - указываете путь к нужной папке
Далее код:...
Код:
function GetFileCount:integer;
var
  fs: TSearchRec;
  pics: Integer;
begin
  pics:=0;
  if FindFirst(Form1.ShellListView1.Root+'\*.*', faAnyFile - faDirectory - faVolumeID, fs) = 0 then
  repeat
    inc(pics);
  until
    FindNext(fs) <> 0;
  FindClose(fs);
Result := Pics;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
  t: Integer;
begin
  for t:=0 to GetFileCount-1 do
  ListBox2.Items.Append(Form1.ShellListView1.Folders[t].DisplayName);
end;
Функция считает, количество файлов в папке...
Ну а потом цикл... Думаю всё ясно.
Кому надо, тот может привести данный код к более красивому виду и т.д. Я просто идею рассказал. Немного коряво конечно, но щас доделаю(это мелочи)
Janger вне форума Ответить с цитированием
Старый 08.11.2014, 14:09   #6
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Ой, ребят. тут всё намного проще!!
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  t: Integer;
begin
  for t:=0 to ShellListView1.Items.Count-1 do
  ListBox2.Items.Append(Form1.ShellListView1.Folders[t].DisplayName{.PathName});
end;
Janger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа, сортирующая исходный одномерный массив целых чисел методами пузырьковой сортировки и сортировки прямым выбором (язык С) igor01 Помощь студентам 7 16.05.2014 23:21
Проблемы с vba (проблемы создания макросов) Leojse Microsoft Office Excel 4 26.12.2013 20:09
Сравнить эффективность алгоритмов шейкерной сортировки и сортировки слиянием (язык C) Ольга210993 Помощь студентам 2 20.09.2012 13:52
Алгоритмы сортировки пирамидальный(кучей) и быстрой сортировки (с++) mmd12 Помощь студентам 4 17.05.2012 14:14