Программа просмотра фотографий

  

Программа демонстрирует использование компонента ListBox. Программа позволяет просмотреть фотографии (JPG-файлы). Заполняет список компонента ListBox процедура FillListBox (её обновление надо поместить в секцию Protected объявления формы). В начале работы программы процедуру FillListBox вызывает процедура обработки события Create формы.

Процедура обработки события Click на кнопке папка отображает стандартное окно ВЫБОР ПАПКИ (отображение диалога обеспечивает процедура SelectDirectory), затем вызывает функцию FillListBox. Фотография отображается в поле компонента Image. Для того чтобы фотография отображалась без искажения, свойству AutoSise компонента Image надо присвоить значение False, а свойству Proportional — True. Отображение выбранной в списке иллюстрации осуществляет процедура обработки события Click, которое происходит в результате щелчка на элементе списка или перемещения указателя текущего элемента списка с помощью клавиш управления курсором. Следует обратить внимание, что в директиву Uses модуля формы надо добавить ссылку на модули FileCtrl и Jpeg.

Расположение компонентов на форме

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,
FileCtrl,
Jpeg;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Image1: TImage;
procedure ListBox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Path: string;
procedure FillListBox;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

// Заполняем список компонента ListBox
// (формируем список jpg-??????файлов

procedure TForm1.FillListBox;
var
SearchRec: TSearchRec; // результат поиска файла
r: integer;
begin
r := FindFirst(Path + '*.jpg', faAnyFile, SearchRec);
if r = 0 then
begin
// в каталоге Path есть по крайней мере один jpg-файл
ListBox1.Items.Clear;
ListBox1.Items.Add(SearchRec.Name);
while 0 = FindNext(SearchRec) do
begin
ListBox1.Items.Add(SearchRec.Name);
end;

ListBox1.ItemIndex := 0;
Image1.Picture.LoadFromFile(Path + ListBox1.Items[ListBox1.ItemIndex]);
end;

end;

// конструктор формы

procedure TForm1.FormCreate(Sender: TObject);
begin
FillListBox;
end;

// щелчок в поле компонента ListBox

procedure TForm1.ListBox1Click(Sender: TObject);
var
Filename: string;
begin
FileName := Path + ListBox1.Items[ListBox1.ItemIndex];
Image1.Picture.LoadFromFile(Filename);

end;

// щелчок на кнопке "папка"

procedure TForm1.Button1Click(Sender: TObject);
begin
if SelectDirectory('выберите каталог', '', Path) then
begin
Path := Path + '\';
Form1.Caption := 'просмотр иллюстраций - ' + Path;

end;
end;