Программа “Просмотр рисунков” предназначена для просматривания
графических изображений форматов 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-формой, чтобы открывать рисунок во
весь экран. Много чего можно сделать с этой программой.