** Павел |
Отправлено: 20.05.2006, 13:54 |
|
Не зарегистрирован
|
Люди, у меня такой вопрос.
Делаю простой графичкеский просмотрщик.
Пользователь открывает картинку из какой либо папки, как можно сделать, чтобы при нажатии на кнопку открывалась следующая или предыдущая картинка из этой папки. |
|
olegenty |
Отправлено: 20.05.2006, 14:11 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
самое простое — при открытии папки сканировать её содержимое в список, а дальше оперировать индексом в списке. TStringList вполне подойдёт.
|
|
** Павел |
Отправлено: 20.05.2006, 14:45 |
|
Не зарегистрирован
|
А как можно это сделать? |
|
olegenty |
Отправлено: 20.05.2006, 14:55 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
https://rxlib.ru/forums/index.php?ac...db47cb55a640e91
|
|
Aptem |
Отправлено: 20.05.2006, 16:57 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Держи! Загружает содержимое папки в TListBox.
CODE |
void __fastcall TForm1::GetFileList ( TListBox *ListBox )
{
AnsiString Directory, File;
TSearchRec sr;
if ( SelectDirectory ( Directory, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt, 1000 ) )
{
ListBox -> Items -> Clear ();
if ( FindFirst ( Directory + "\\*.*", faAnyFile, sr ) == 0 )
{
do
{
if ( ( sr.Name == "." ) ) continue;
if ( !( sr.Attr & faHidden ) && !( sr.Attr & faSysFile ) && !( sr.Attr & faDirectory ) && !( sr.Attr & faVolumeID ) )
{
File = sr.Name;
ListBox -> Items -> Add ( File );
}
} while ( FindNext ( sr ) == 0 );
FindClose ( sr );
}
if ( !ListBox -> Items -> Count ) ShowMessage ( "There are no files in folder!" );
else
{
ListBox -> ItemIndex = 0;
}
}
}
|
|
|
** Павел |
Отправлено: 20.05.2006, 17:23 |
|
Не зарегистрирован
|
Спасибо, с этим разобрался. Еще один маленький вопрос. В строке
if(FindFirst(currDir+"\\"+"*.mp3", faAnyFile, sr) == 0)
указывается раширение файла. Не получается указать дополнительные расширения ,например , чтоб открывал файлы mp3 или wma и т.д |
|
Aptem |
Отправлено: 21.05.2006, 05:33 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
QUOTE (** Павел @ 20/05/2006, 17:23) | if(FindFirst(currDir+"\\"+"*.mp3", faAnyFile, sr) == 0)
указывается раширение файла. Не получается указать дополнительные расширения ,например , чтоб открывал файлы mp3 или wma и т.д |
Если по-тупому, то:
CODE |
if ( FindFirst ( currDir+"\\"+"*.mp3", faAnyFile, sr ) == 0 && FindFirst ( currDir+"\\"+"*.wma", faAnyFile, sr ) == 0 )
|
|
|
olegenty |
Отправлено: 21.05.2006, 06:06 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
2 Aptem — ну-ну. и оператор && поставил вместо ||.
проще отдельную строку сформировать и единыжды её применить.
|
|