Перегляд зображень

Програма Перегляд ілюстрацій дає змогу переглянути файли формату JPEG, наприклад – фотографії. Вибір робочої папки (каталогу) виконується в стандартному вікні. Вибір папки. Ілюстрації можна переглядати по кадрах або в режимі слайд-шоу. Частоту зміни кадрів у режимі слайд-шоу визначає значення властивості interval таймера.

Код написання програми

#include FileCtrl.hpp// для доступу до SelectDirectory
#include jpeg.hpp// забезпечує роботу з ілюстраціями у форматі JPEG
AnsiString aPath; // каталог, у якому знаходиться
// ілюстрація
TSearchRec aSearchRec; // рез-т пошуку файл
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
aPath = ""; // поточний каталог - каталог, з якого запущена програма
FirstPicture(); // показати картинку, яка є в каталозі програми
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (SelectDirectory("Виберіть каталог, в якому знаходяться ілюстрації", "", aPath) != 0)
{
// користувач вибрав каталог і клацнув на ОК
aPath = aPath + "\\" ;
if ( FirstPicture() ) // вивести ілюстрацію
CheckBox1->Enabled = true;
else
Label1->Caption = "У каталозі " + aPath +
" немає jpg-ілюстрацій." ;
}
}
bool __fastcall TForm1::FirstPicture()
{
Image1->Visible = false; // приховати компонент Imagel
Button2->Enabled = false; // кнопка Далі недоступна
CheckBox1->Enabled = false;
CheckBox1->Checked = false;
Label1->Caption = "";
if (FindFirst(aPath+ "*.jpeg", faAnyFile, aSearchRec) == 0)
{
Image1->Picture->LoadFromFile(aPath+aSearchRec.Name);
Image1->Visible = true;
Label1->Caption = aPath + aSearchRec.Name;
if ( FindNext(aSearchRec) == 0 ) // знайти наступну іл.
{
// ілюстрація є
Button2->Enabled = true; // тепер кнопка Далі доступна
CheckBox1->Enabled = true;
return true;
}
}
return false;
}
bool __fastcall TForm1::NextPicture()
{
Image1->Picture->LoadFromFile(aPath+aSearchRec.Name);
Label1->Caption = aPath + aSearchRec.Name;
if ( FindNext(aSearchRec) != 0 )
{
Button2->Enabled = false;
CheckBox1->Enabled = false;
}
return false;
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if ( CheckBox1->Checked)
Timer1->Enabled = true;
else
Timer1->Enabled = false;
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if ( ! NextPicture())
Timer1->Enabled = false;
}
public: // User declarations
bool __fastcall TForm1::FirstPicture();
bool __fastcall TForm1::NextPicture();

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *