Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
512244_74984_sidorov_m_e_algoritmizaciya_i_prog....doc
Скачиваний:
14
Добавлен:
01.05.2019
Размер:
5.08 Mб
Скачать

Окно открытия файла (Open)

Окно открытия файла отображается с помощью компонента CommonDialog, показывает содержимое текущего каталога и позволяет выбрать файл. Чтобы добавить этот компонент на панель инструментов General отройте окно Components командой меню Project, Components, вкладку Controls и выберите компонент Microsoft Common Dialog Control 6.0

Компонент CommonDialog (Общий диалог) предоставляет стандартный набор окон диалога: Open (Открытие файла), Save as (Сохранение), Color (Цвет), Font (Выбор шрифта), Print (Печать) и Справка (Help).

Методы компонента CommonDialog задают вид отображаемого окна, например:

Вид окна

Метод

Вид окна

Метод

Открытие файла (Open)

ShowOpen

Выбор шрифта (Font)

ShowFont

Сохранение файла (Save)

ShowSave

Печать (Print)

ShowPrint

Цвет (Color)

ShowColor

Справка (Help)

ShowHelp

Все окна имеют свойство CancelError, позволяющего при установке значения True перехватить и обработать ошибку с кодом cdlCancel (если пользователь нажмет кнопку Cancel окна диалога), а также свойство Flags - настройки, задаваемые суммой констант.

Рис. 26. Окна открытия файла и выбора шрифта

Приведем назначение некоторых свойств и констант окна открытия файла.

Свойство

Возвращает или устанавливает

FileName

имя открываемого файла

Filter

фильтр отображаемых файлов. Синтаксис:

Filter = Описание1 | Маска1 | Описание2 |Маска2 и т.п. Например:

Filter = "Текстовые файлы (*.txt) | *.txt | " _

& "Графические файлы (*.bmp, *.gif). | *.bmp, *.gif"

Filterlndex

текущий номер маски из фильтра. Нумерация с 1.

InitDir

текущую директорию при открытии окна диалога

Константы Flags

Устанавливает для окна Open

cdlOFNFileMustExist

возможность ввода имен только существующих файлов.

cdlOFNExplorer

стиль проводника Windows

В следующем проекте-примере будет использоваться элемент управления Timer (Таймер). В событии Timer пишется программный код, который выполняется через промежутки времени, заданные в свойстве таймера Interval. Это свойство задает интервал времени в миллисекундах. Таймер включается после определения его свойства Enabled=True. Таймер не отображается в окне во время выполнения программы.

Пример. Разместим на форме компоненты: Image1, Picture1, CommonDialog1 и Timer1. Для Image1 и Picture1 в конструкторе зададим свойство Picture, рис. 27.

Рис. 27. Форма с изменяющимися картинками

Определим объект для временного хранения изображения (картинки).

Private TmpPicture As New StdPicture

Определим функцию, возвращающую имя файла, указанного в CommonDialog.

Private Function FCmdFileName(CmD As CommonDialog) As String

CmD.CancelError = True

On Error GoTo MtkEr

CmD.Flags = cdlOFNFileMustExist

CmD.FileName = Empty

CmD.ShowOpen

FCmdFileName = CmD.FileName

Exit Function

MtkEr:

If Err.Number <> cdlCancel Then

FCmdFileName = Empty

MsgBox "Ошибка: " & Err.Description,vbCritical,"CmnDlgError"

End If

End Function

Определим функцию, загружающую графический файл

Private Sub LoadGrFile(Pict As Object, CmnDlg As CommonDialog)

Dim CmdFileName As String

Timer1.Enabled = False

CmD.InitDir="C:\Program Files\Microsoft Visual Studio\Common\Graphics\"

CmnDlg.Filter="Графические файлы(*.gif;*.wmf) | *.gif;*.wmf"

CmdFileName = FCmdFileName(CmnDlg)

If CmdFileName <> Empty Then

Pict.Picture = LoadPicture(CmdFileName)

End If

Timer1.Enabled = True

End Sub

Меняем рисунки местами

Private Sub Timer1_Timer()

Set TmpPicture = Picture1.Picture 'или =Picture1.Image

Picture1.Picture = Image1.Picture 'а так нельзя Picture1.Image=

Image1.Picture = TmpPicture

End Sub

Загружаем новый рисунок

Private Sub Image1_Click()

Call LoadGrFile(Image1, CommonDialog1)

End Sub

Загружаем новый рисунок

Private Sub Picture1_Click()

Call LoadGrFile(Picture1, CommonDialog1)

End Sub

Выгружаем из памяти объект для временного хранения изображения

Private Sub Form_Unload(Cancel As Integer)

Set TmpPicture = Nothing

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]