Как отфильтровать Filelistbox с маскировкой нескольких типов файлов?

Как-то мне нужно сделать пользовательскую «форму открытия файла». Мне удается получить список файлов с помощью filelistbox. Мой вопрос, когда я ввожу это в filelistbox1.mask

Image Files|*.jpg;*.jpeg;*.bmp;*.gif;*.png;*.tiff;*.tga

не отображались все файлы *.jpg, но другие файлы изображений ( .jpeg;.bmp;.gif;.png;.tiff;< /em>.tga). как это может быть?

Я уверен, что в папке есть файлы *.jpg, но почему они не отображаются в списке файлов?

как починить мою маску? Любая идея, что такое правильная маска для него?


person Galvion    schedule 19.01.2012    source источник
comment
TFileListBox предназначен для Windows 3.1, выпущенной в 1992 году. Он выглядит «немного» устаревшим. Я бы настоятельно посоветовал вам использовать обычный TListView или какой-нибудь современный список файлов.   -  person Andreas Rejbrand    schedule 20.01.2012
comment
Я все еще новичок в делфи... Я не понимаю, как использовать TListView.... но все равно спасибо   -  person Galvion    schedule 20.01.2012


Ответы (2)


Вам нужно указать только расширения.

*.jpg;*.jpeg;*.bmp;*.gif;*.png;*.tiff;*.tga

По крайней мере, так я прочитал документацию.

Из комментариев видно, что вы хотите сохранить в элементе управления некоторый понятный текст, указывающий, к какому типу файла относится маска, например. файлы изображений, исполняемые файлы, текстовые файлы и т. д. Возможно, вы могли бы переназначить свойство Hint для этого. Вы можете использовать свойство Tag и сохранить файл PChar. Вы можете вывести из TFileListBox новый класс, содержащий дополнительное свойство. Или вы можете просто сохранить информацию в классе формы, которому принадлежит список.

person David Heffernan    schedule 19.01.2012
comment
@Дэйвид. Вы меня просто опередили :) - person Francesca; 20.01.2012
comment
@David Heffrnan: это предыдущий, которым я пользуюсь, и он работает. Но мне нужно добавить слова «Файлы изображений», чтобы определить, что это файлы изображений. как их добавить? - person Galvion; 20.01.2012
comment
Я не понимаю этот комментарий. Синтаксис, необходимый для маски, соответствует моему ответу. - person David Heffernan; 20.01.2012
comment
@ Сидхи. Вы путаете FileListBox, который предоставляет список файлов в соответствии со свойством Mask (без комментариев) и диалоговое окно открытия файла, использующее свойство Filter, которое отображает первую часть (до |) в качестве заголовка при фильтрации по маске (последняя часть после |). Вы должны поместить TLabel в качестве заголовка вашего FileListBox в качестве подсказки для содержимого маски файла. - person Francesca; 20.01.2012
comment
в любом случае мне удается это решить... Мне просто нужно добавить точку с запятой; после | так и будет |; Полный должен быть таким: ---Файлы изображений|;*.jpg;*.jpeg;*.bmp;*.gif;*.png;*.tiff;*.tga;--- работает гладко. В любом случае спасибо за помощь ^^ - person Galvion; 20.01.2012
comment
Как это решить? Маска не видна. Мы уже решили это! - person David Heffernan; 20.01.2012

Удалите Image Files|.
Это для диалогов файлов.

person Francesca    schedule 19.01.2012
comment
Я не могу удалить файлы изображений| мне нужно, чтобы определить файлы как изображения (для помощи в использовании) - person Galvion; 20.01.2012
comment
в любом случае мне удается это решить... Мне просто нужно добавить точку с запятой; после | так и будет |; Полный должен быть таким: ---Файлы изображений|;*.jpg;*.jpeg;*.bmp;*.gif;*.png;*.tiff;*.tga;--- работает гладко. В любом случае спасибо за помощь ^^ - person Galvion; 20.01.2012