Программа демонстрирует использование компонента 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; |