Галерея в Delphi

Досить часто до мене звертаються учні, в яких я викладаю інформатику з проханням допомогти написати фотогалерею засобами середовища програмування Delphi. Це й стало поштовхом написати таку собі інструкцію по створенню “примітивної” галереї.
Отож почнемо. Перш за все наведу алгоритм роботи такої галереї:
1. При створенні нової форми відбувається пошук графічних файлів у заданій директорії;
2. Назви усіх графічних файлів для зручності поміщуються в невидиме багаторядкове текстове поле на формі;
3. Перший знайдений файл помішується в головне зображення та preview-1, а наступні 3 відповідно в області preview-2, preview-3, preview-4.
4. Під час зміни розміру форми відбувається позиціювання елементів

Схематичний вигляд форми є наступним:

Тепер перейдемо до коду:

var icludeGalerySting : String;
indexPhoto : Integer;
// Процедура пошуку файлів
Procedure GiveMePhotoFile(folderLocation : String);
var
FindHandle : THandle;
FindData : TWin32FindData;
b: boolean;
s: string;
begin
form14.Memo1.Lines.Clear;
// Встановимо атрибути файлу як звичайні
FindData.dwFileAttributes := FILE_ATTRIBUTE_NORMAL;
// шукаємо перший файл в каталозі заданому змінною folderLocation
FindHandle := FindFirstFile(PChar(folderLocation+’\*.jpg’), FindData);
// Якщо перший файл знайдено продовжуємо пошук далі
if FindHandle <> INVALID_HANDLE_VALUE then
begin
b := true;
while b do
begin
s := FindData.cFileName;
// відкидаємо будьякі точки
if (s<>‘..’) and (s<>‘.’) then
form14.Memo1.Lines.Add(s);
b := FindNextFile(FindHandle, FindData);
end;
end;
end;
// Завантаженя зображень в Image та prewiew
Procedure loadFotoFile(indexPhotoFile : integer);
begin
form14.Image1.Picture.LoadFromFile(icludeGalerySting + ‘\’ + form14.Memo1.Lines[indexPhotoFile]);
form14.Image2.Picture.LoadFromFile(icludeGalerySting + ‘\’ + form14.Memo1.Lines[indexPhotoFile]);
form14.Image3.Picture.LoadFromFile(icludeGalerySting + ‘\’ + form14.Memo1.Lines[indexPhotoFile+1]);
form14.Image4.Picture.LoadFromFile(icludeGalerySting + ‘\’ + form14.Memo1.Lines[indexPhotoFile+2]);
form14.Image5.Picture.LoadFromFile(icludeGalerySting + ‘\’ + form14.Memo1.Lines[indexPhotoFile+3]);
end;
//——— End of my declaration ———//
// Кнопка вихід
procedure TForm14.Button1Click(Sender: TObject);
begin
form14.close;
end;
// При зміні розміру форми
procedure TForm14.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
var fullPreviewWidth : Integer;
begin
form14.Button1.Left := (NewWidth – form14.Button1.Width) div 2;
form14.Image1.Left := (NewWidth – form14.Image1.Width) div 2;
form14.Image1.Top := (form14.Panel1.Height – form14.Panel3.Height – form14.Image1.Height) div 2;

fullPreviewWidth := (8 * 3) + (form14.Image2.Width * 4);
form14.Image2.Left := (NewWidth – fullPreviewWidth) div 2;
form14.Image3.Left := form14.Image2.Left + 8 + form14.Image2.width;
form14.Image4.Left := form14.Image3.Left + 8 + form14.Image2.width;
form14.Image5.Left := form14.Image4.Left + 8 + form14.Image2.width;
form14.prevBtn.Left := 15;
form14.nextBtn.Left := NewWidth – 20 – form14.nextBtn.Width;
end;
// При створенні форми
procedure TForm14.FormCreate(Sender: TObject);
begin
form14.Memo1.Visible := false;
form14.Memo1.Lines.Clear;
icludeGalerySting := getCurrentDir +’\images’;
GiveMePhotoFile(icludeGalerySting);
indexPhoto := 0;
loadFotoFile(indexPhoto);
end;

procedure TForm14.Image2Click(Sender: TObject);
begin
form14.Image1.Picture := form14.Image2.Picture;
end;

procedure TForm14.Image3Click(Sender: TObject);
begin
form14.Image1.Picture := form14.Image3.Picture;
end;

procedure TForm14.Image4Click(Sender: TObject);
begin
form14.Image1.Picture := form14.Image4.Picture;
end;

procedure TForm14.Image5Click(Sender: TObject);
begin
form14.Image1.Picture := form14.Image5.Picture;
end;
// Наступне зображення
procedure TForm14.nextBtnClick(Sender: TObject);
begin
if form14.Memo1.Lines[indexPhoto+4]<>” then
begin
indexPhoto := indexPhoto + 1;
loadFotoFile(indexPhoto);
end;
end;
// Попереднє зображення
procedure TForm14.prevBtnClick(Sender: TObject);
begin
if indexPhoto<>0 then
begin
indexPhoto := indexPhoto – 1;
loadFotoFile(indexPhoto);
end;
end;

Поділитись

Share to Facebook
Share to Google Plus
Share to LiveJournal
Share to Odnoklassniki
Share to MyWorld

Встановлення QT4 у Windows та інтеграція в Microsoft Visual Studio

Ми всі живемо в часи інформаційного суспільства та коп’ютерних технологій. Дедалі частіше для розробки програмних продуктів на C++, C# та й взагалі розробці засобами Microssoft Visual Studio застосовують бібліотеку QT.

Сьгодні я вам хочу розповісти як саме встановити бібліотеку QT на ваш настільний ПК. Отож до справи.

Перш за все вам необхідно завантажити файли бібліотеки з офіційного сайту QT.nokia.com. Тут ви знайдете не лише саму бібліотеку а й інші корисні компоненти. Взагалі існує дві версії бібліотеки: безкоштовна (LGPL) та платна (Commercial). Різниця полягає в тому, що використовуючи безкоштовнк версію ваш програмний код повинен бути відкритим, а також при встановленні бібліотеки не потрібно вказувати номер ліцензійної угоди. Я користуюсь безкоштовною версією.
Якщо ви будете працювати з Microssoft Visual Studio то занайдіть посилання Qt libraries 4.7.1 for Windows (VS 2008, 228 MB).

Розпакуйте завантажену бібліотеку з архіву за адресою C:\Qt\qt-src-4.7.1 та створіть в цьому каталозі виконуваний файл з таким вмістом:

rem Виключає ехо-луну

@echo off

rem Вкажіть шлях до файлу vcvarsall.bat
rem Він знаходиться в каталозі VC відповідної версії Microsoft Visual Studio
rem В моєму прикладі використовується Microsoft Visual Studio 2010 встановлена на диск D:

call «D:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat» x86


rem Додамо змінну середовища користувача
set QTDIR=C:\Qt\qt-src-4.7.1\

rem Задаємо платформу.
rem Для Microsoft Visual Studio 2008 вказати win32-msvc2008, або
rem win32-msvc2009 взалежності від встановленої версії

set QMAKESPEC=win32-msvc2010


rem Перехід в кореневу папку з бібліотекою
cd /d %QTDIR%

echo Rebuiding SHARED debug-and-release Qt…

rem Власне конфігурація бібліотеки
configure -debug-and-release -shared -qmake -platform win32-msvc2010

Тепер залишилось трохи зачекати поки відбудеться конфігурація QT.

Коли бібліотека буде встановлена завантажте з офіційного сайту компонент для інтеграції QT у Microsoft Visual Studio (qt-vs-addin-1.1.7.exe (57 MB)) та запустіть його на виконання. Після встановлення компоненту в головному меню Visual Studio з’явиться пункт QT. Тепер можна працювати з QT у Microsoft Visual Studio х.

Поділитись

Share to Facebook
Share to Google Plus
Share to LiveJournal
Share to Odnoklassniki
Share to MyWorld