Программа “Просмотр рисунков” предназначена для просматривания графических изображений форматов BMP, DIB, JPG, GIF(не анимированных), ICO, CUR, WMF, EMF. Выбор рисунка будет осуществляться с помощью листа с именами файлов этих типов. При просмотре изображение будет растягиваться или сжиматься до размеров поля просмотра.
Итак, начнем…


Шаг №1. Визуальная реализация программы.
Поместите на форму следующие элементы с данными свойствами:

Форма
Name = frmViewer
BorderStyle = Fixed Single
MinButton = True
Caption = “Просмотр рисунков”

ImageBox.
Name = imgImage
BorderStyle = Fixed Single
Stretch = True

DriveListBox.
Name = lstDrive

DirListBox.
Name = lstDir

FileListBox.
Name = lstFile
Pattern = *.bmp;*.dib;*.gif;*.jpg;*.ico;*.cur;*.wmf;*.emf

Ну вот. Все. Ваша форма должна выглядеть примерно вот так:


Теперь немного объясню. В свойствах элемента Image Вы указали Stretch = True. Этим Вы сказали, что Image будет подгонять рисунок под границы поля. Если сможете, сделайте так, чтобы можно было просматривать рисунок в отдельном окне в полный рост. В свойствах элемента FileListBox Вы указали Pattern = *.bmp;*.dib;*.gif;*.jpg;*.ico;*.cur;*.wmf;*.emf. Так Вы указали, какие типы файлов будут отображаться в этом листе. Внимание! Типы файлов записываются через точку с запятой и БЕЗ пробела!


Шаг №2. Написание программного кода
Напишем программный код для этой программы. Я не буду слово в слово пояснять смысл. Просто дам программный код, а потом объясню самые сложные места.
Итак вуаля:

Private Sub Form_Load() - Делаем так, чтобы при загрузке формы
‘устанавливалась маска для листа с файлами

lstFile.Pattern = "*.BMP;*.DIB;*.GIF;*.jpg;*.ico;*.cur;*.wmf;*.emf"
End Sub

Private Sub lstDir_Change()
‘Путь листа с файлами равен пути
‘листа с директориями

lstFile.Path = lstDir.Path
End Sub

Private Sub lstDrive_Change()

‘Диск листа с директориями равен диску
‘листа с дисками

lstDir.Path = lstDrive.Drive
End Sub

Private Sub lstFile_Click()

'b = Пути к файлам
b = lstDir.Path
‘Если путь заканчивается слэшем тогда

If Right(b, 1) = "" Then
a = lstDir.Path + lstFile.filename

‘А если нет тогда

Else
a = lstDir.Path + "" + lstFile.filename
End If

‘Загружаем картинку из файла с
‘путем “a”

imgImage = LoadPicture(a)
End Sub

Private Sub lstFile_KeyPress(KeyAscii As Integer)

‘То же самое для нажатия клавиатуры
b = lstDir.Path
If Right(b, 1) = "" Then
a = lstDir.Path + lstFile.filename
Else
a = lstDir.Path + "" + lstFile.filename
End If
imgImage = LoadPicture(a)
End Sub


Я не буду объяснять весь код, лишь самые непонятные части.
Свойство Pattern y lstFile мы меняли, чтобы были видны только файлы с графическими изображениями.
Так, как часто Вы пользуетесь клавиатурой для выбора файла, то мы поместили одинаковый программный код в два события листа с файлами: для нажатия мыши и для нажатий клавиатуры. Этот код можно было записать только однажды, используя вызов процедуры, но о процедурах будет рассказано позже.
Оператор Right мы использовали для определения правого символа пути к директории с изображениями. В скобках сначала стоит переменная, содержащая текст, а за ней стоит число, указывающее количество проверяемых символов. Так, если переменная содержит такой текст:
Test “Right”
То оператор
Right(переменная, 7)
Возвратит Вам слово “Right”.
Мы использовали такую процедуру потому, что если Ваш путь - корневой каталог, то последний символ его будет слэш (C:). А если не корневой каталог, то слэша не будет и может возникнуть ошибка (C:DOS). Поэтому важно присоединять слэш к пути, если его там нет.
Оператор LoadPicture(путь) загружает картинку в элемент Image или Picture. Внимание! Ошибочно думать, что загрузить картинку можно подобным образом:
Image1.Picture = C:WindowsКолечки.bmp
Так ничего не получится.
На этом создание программы подходит к концу. Вы можете ее усовершенствовать: добавить лейбл, в котором будет отображаться путь к файлу; добавить панель “О программе…”, в которой будет написано, что Вы создали эту программу; можете дополнить программу MDI-формой, чтобы открывать рисунок во весь экран. Много чего можно сделать с этой программой.