Электронная библиотека » Евгений Матвеев » » онлайн чтение - страница 11


  • Текст добавлен: 16 октября 2020, 08:02


Автор книги: Евгений Матвеев


Жанр: Прочая образовательная литература, Наука и Образование


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 11 (всего у книги 18 страниц)

Шрифт:
- 100% +
9.20.2. События

Элемент управления Data (Данные), кроме стандартных событий клавиатуры и мыши, поддерживает и некоторые специфические, связанные с обработкой данных:

Error (Ошибка). Вызывается при возникновении ошибки в процессе доступа к данным.

Reposition (Изменение положения). Возникает перед тем, как запись, к которой осуществляется переход, становится текущей.

9.20.3. Методы

Объект Data (Данные) может использовать следующие методы, связанные с обработкой данных:

Refresh (Обновить). Закрывает и заново открывает текущий набор записей:


объект.Refresh


UpdateControls (Изменить элементы управления). Считывает из базы данных текущие значения полей и помещает в связанных элементах управления:


объект. UpdateControls


UpdateRecord (Изменить запись). Сохраняет в базе данных текущие значения полей, находящиеся в связанных элементах управления:


объект. UpdateRecord


Для объекта Recordset (Набор записей) используются свои методы:

AddNew (Добавить новую). Добавляет новую запись в Recordset (Набор записей):


объект.Recordset.AddNew


Delete (Удалить). Удаляет текущую запись:


объект.Recordset.Delete


Edit (Редактировать). подготавливает текущую запись к редактированию.


объект.Recordset. Edit


FindFirst (Найти первую). Находит первую запись, удовлетворяющую заданному критерию поиска:


объект.Recordset.FindFirst критерий_поиска


Критерий поиска составляется в виде логического выражения с указанием имен полей, например: «Поле1> =120 And Поле2 <> „Продано“». По завершению процесса поиска первая найденная запись становится текущей, а свойство NoMatch (Нет совпадения) объекта Recordset (Набор записей) принимает значение False (Ложь). Если ничего не найдено, то свойство NoMatch (Нет совпадения) сохраняет значение True (Истина), текущая запись не изменяется.

FindLast (Найти последнюю). Находит последнюю запись, удовлетворяющую критерию поиска:


объект.Recordset.FindLast критерий_поиска


FindNext (Найти следующую). Находит следующую запись, удовлетворяющую критерию поиска:


объект.Recordset.FindNext критерий_поиска


FindPrevious (Найти предыдущую). Находит предыдущую запись, удовлетворяющую критерию поиска:


объект.Recordset.FindPrevious критерий_поиска


GetRows (Получить строки). Работает как функция, копирующая набор записей в массив переменных.


массив = объект.Recordset.GetRows ([число_записей])


Если число записей не указано, метод GetRows копирует все содержимое объекта Recordset (Набор записей).

Move (Перейти). Осуществляет относительный переход на указанное число записей:


объект.Recordset.Move число_записей


В качестве аргумента допускается использование как положительных, так и отрицательных значений. От этого зависит направление перемещения по набору записей.

MoveFirst (Перейти к первой). Делает текущей первую запись:


объект.Recordset.MoveFirst


MoveNext (Перейти к следующей). Делает текущей следующую запись:


объект.Recordset.MoveNext


MovePrevious (Перейти к предыдущей). Делает текущей предыдущую запись:


объект.Recordset.MovePrevious


MoveLast (Перейти к последней). Делает текущей последнюю запись:


объект.Recordset.MoveLast


OpenRecordset (Открыть набор записей). Создает новый набор записей.

Requery (Повторить запрос). Повторно выполняет запрос, на котором базируется набор записей:


объект.Recordset.Requery


Seek (Искать). Производит поиск в наборе записей табличного типа по содержимому индексного поля:


объект.Recordset.Seek оператор_сравнения, строка1 [, строка2]…


Первый аргумент является одним из операторов сравнения: <, <=, =,> =, или>. Следующие строковые параметры содержат текстовую информацию, которая сравнивается с содержимым поля, указанном в свойстве Index (Индекс) элемента управления Data (Данные).

Update (Изменить). Сохраняет в базе данных текущие значения полей редактируемой записи:


объект.Recordset. Update


9.20.4. Пример программирования

Наиболее часто приходится связывать элементы управления с какой-то базой данных с помощью объекта Data (Данные), что мы сейчас и продемонстрируем.

Разместите на форме элементы управления TextBox (Текстовое поле) и Data (Данные) (Рис.9.32).


Рис.9.32. Элементы управления

TextBox (Текстовое поле) и Data (Данные)


Сначала определите значения свойств объекта Data (Данные):

Connect (Подключение). Оставьте значение Access, предлагаемое Visual Basic по умолчанию.

DatabaseName (Имя базы данных). Нажмите кнопку с многоточием справа от названия данного свойства для открытия диалога DatabaseName (Имя базы данных) (Рис.9.33), затем щелчком мыши выберите файл Biblio.mdb и нажмите кнопку Открыть (Open).


Рис.9.33. Диалог DatabaseName

(Имя базы данных)


RecordSource (Источник записей). Щелчком мыши откройте список допустимых значений этого свойства и выберите таблицу Authors.

Для установления связи с объектом Data (Данные) нужно установить следующие свойства элемента управления TextBox (Текстовое поле):

DataSource (Источник данных). В открывающемся списке выберите имя Data1 объекта Data (Данные), находящегося на форме.

DataField (Поле данных). Здесь выберите имя поля Author из текущего набора записей, который использует объект Data (Данные).

Запустите приложение. В текстовом поле появится содержимое поля Author первой записи таблицы Authors базы данных Biblio.mdb (Рис.9.34).


Рис.9.34. Работа приложения, связанного с базой данных


Пощелкайте мышью на кнопках объекта Data (Данные). Будет производиться перемещение по записям таблицы Authors.

Установите курсор в текстовое поле и измените его содержимое.

Затем перейдите к следующей записи и вернитесь обратно. Вы увидите, что в базе данных сохранилось измененное значение.

Перейдите в режим проектирования.

9.21. OLE – Object Linking and Embedding (Связь и внедрение объектов)

Элемент управления OLE – Object Linking and Embedding (Связь и внедрение объектов) позволяет вставлять и редактировать данные с помощью других приложений.

Внешний вид объекта OLE (Связь и внедрение объектов) зависит от приложения, с которым устанавливается связь, однако в процессе проектирования это выглядит достаточно просто (Рис.9.35).


Рис.9.35. Элемент управления

OLE (Связь и внедрение объектов)


Технология программирования Object Linking and Embedding (Связь и внедрение объектов) использует ряд специальных терминов, смысл которых нужно разъяснить для понимания механизма ее работы.

Основным понятием этой технологии программирования является объект OLE (OLE Object), представляющий собой совокупность данных, имеющих определенный формат, например: графические изображения, звук, видео, текст и др.

Приложение-приемник (Container Application) только ссылается на данные объекта OLE, а непосредственно работает с ними приложение-источник (Source Application). Для обеспечения возможности установления связи между собой, оба приложения должны поддерживать технологию OLE (Связь и внедрение объектов).

В зависимости от типа установленной связи между приложениями, элемент управления OLE (Связь и внедрение объектов) может содержать объект одной из перечисленных разновидностей:

• связанный объект (Linked Object),

• внедренный объект (Embedded Object).

Все данные связанного объекта хранятся в отдельном файле, который обрабатывается приложением-источником. Приложение-приемник хранит лишь ссылку на связанный файл, который может быть изменен любой другой программой, а не только приложением-приемником (Рис.9.36).


Рис.9.36. Связанный объект OLE


Степень интеграции внедренного объекта с приложением-приемником выше, так как в этом случае все данные хранятся непосредственно в самом приложении-приемнике. Внедренный объект недоступен для изменения другими программами, кроме приложения-источника (Рис.9.37).


Рис.9.37. Внедренный объект OLE


Работа со связанными и внедренными объектами OLE осуществляется одинаково, отличия заключаются лишь в способе хранения данных.

Связанный объект записывается в файл средствами приложения-источника. Внедренный объект находится в оперативной памяти компьютера, но при необходимости его можно записать в файл, открытый для доступа в режиме Binary (Двоичный), используя инструкции языка Visual Basic.

Естественно, что при повторном запуске программы потребуется считать из файла сохраненный объект OLE, иначе он просто не будет работать.

Чтобы приложение-приемник могло управлять работой приложения-источника, последнее предусматривает использование специальных команд (Verb), которые являются специфическими для каждого приложения-источника.

Если приложение-источник поддерживает OLE Automation (Автоматизация OLE), добавленной в OLE 2.0, то возможности управления им становятся гораздо шире – в этом случае Visual Basic позволяет использовать такой объект как самостоятельный элемент управления.

Однако, это не имеет прямого отношения к самому элементу управления OLE (Связь и внедрение объектов), поэтому будет рассмотрено в следующей главе.

9.21.1. Свойства

Нас могут заинтересовать ряд специфических свойств элемента управления OLE (Связь и внедрение объектов):

Action (Действие). Доступно только в период выполнения. Позволяет выполнить определенное действие:

• 0 – создание внедренного объекта,

• 1 – создание связанного объекта,

• 4 – копирование объекта в буфер обмена,

• 5 – вставка объекта из буфера обмена,

• 6 – восстановление текущих данных связанного объекта,

• 7 – активация объекта для выполнения команды,

• 9 – закрытие объекта,

• 10 – удаление содержащегося объекта,

• 11 – сохранение объекта в файле,

• 12 – загрузка объекта из файла,

• 14 – отображение диалога вставки объекта,

• 15 – отображение диалога специальной вставки,

• 18 – сохранение объекта в формате OLE 1.0.



Appearance (Внешний вид). Данное свойство может иметь только одно из двух допустимых значений:

• 0 — Flat (Плоский) – в этом случае объект OLE (Связь и внедрение объектов) выглядит плоским,

• 1 – 3D (Трехмерный) – внешний вид данного элемента управления становится объемным.

AutoActivate (Автоматическая активация). Определяет режим активации внедренного (связанного) объекта:

• 0 — Manual (Вручную),

• 1 – GetFocus (Получение фокуса),

• 2 – DoubleClick (Двойной щелчок),

• 3 – Automatic (Автоматически).

AutoVerbMenu (Автоматическое командное меню). Разрешает или запрещает появление контекстного меню, которое состоит из команд объекта OLE (Связь и внедрение объектов):

• True (Истина) – появление контекстного меню разрешено,

• False (Ложь) – появление контекстного меню запрещено.

Class (Класс). Содержит название класса внедренного (связанного) объекта.

Data (Данные). Содержит указатель на объект в памяти, содержащий нужные данные. Доступно только в период выполнения.

DataText (Текстовые данные). Содержит текстовую строку с данными текущего объекта. Доступно только в период выполнения.

DisplayType (Тип отображения). Определяет формат отображения внедренного (связанного) объекта:

• 0 — Content (Содержимое),

• 1 – Icon (Значок).

HostName (Имя хоста). Задает имя вашей программы, которое отображается в связанном приложении.

MiscFlags (Разнообразные флаги). При необходимости, содержит комбинацию параметров объекта OLE (Связь и внедрение объектов):

• 0 – дополнительные параметры не установлены,

• 1 или vbOLEMiscFlagMemStorage – заставляет элемент управления OLE (Связь и внедрение объектов) использовать оперативную память для хранения внедренного объекта, пока он загружается,

• 2 или vbOLEMiscFlagDisableInPlace – принуждает открывать внедренные (связанные) объекты в отдельном окне.

ObjectVerbs (Команды объекта). Строковый массив, содержащий названия команд, поддерживаемых объектом. Доступно только для чтения в режиме выполнения.

ObjectVerbsCount (Количество команд объекта). Размер массива ObjectVerbs (Команды объекта).

OLEDropAllowed (Допустимость перетаскивания OLE). Указывает на возможность автоматической вставки объекта путем его перетаскивания мышью из другого работающего приложения Windows:

• True (Истина) – перетаскивание OLE разрешено,

• False (Ложь) – перетаскивание OLE запрещено.

OLETypeAllowed (Допустимый тип OLE). Определяет тип объекта, который может содержать элемент управления OLE (Связь и внедрение объектов):

• 0 — Linked (Связанный),

• 1 – Embedded (Внедренный),

• 2 – Either (Любой).

SizeMode (Режим масштабирования). Определяет режим масштабирования при активации внедренного (связанного) объекта:

• 0 — Clip (Прикрепление),

• 1 – Stretch (Растяжение),

• 2 – AutoSize (Автоматическая подгонка),

• 3 – Zoom (Масштабирование).

SourceDoc (Исходный документ). Содержит имя файла, которое используется при создании объекта.

SourceItem (Исходный элемент). Содержит данные файла, которые используются при создании связанного объекта.

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

• 0 — Automatic (Автоматически),

• 1 – Frozen (Фиксировано),

• 2 – Manual (Вручную).

Verb (Команда). Содержит номер индекса в массиве ObjectVerbs (Команды объекта), указывающий команду для активированного объекта OLE (Связь и внедрение объектов).

9.21.2. События

ObjectMove (Перемещение объекта). Возникает при перемещении внедренного (связанного) объекта внутри элемента управления (Связь и внедрение объектов).

Updated (Изменено). Вызывается, когда данные внедренного (связанного) объекта были изменены.

Другие события уже встречались у рассмотренных ранее объектов:

Click (Щелчок),

DblClick (Двойной щелчок),

DragDrop (Перетаскивание и отпускание),

DragOver (Перетаскивание поверх),

GotFocus (Получение фокуса),

KeyDown (Клавиша вниз),

KeyPress (Нажатие клавиши),

KeyUp (Клавиша вверх),

LostFocus (Потеря фокуса),

MouseDown (Кнопка вниз),

MouseMove (Перемещение указателя),

MouseUp (Кнопка вверх),

Resize (Изменение размера).

9.21.3. Методы

Close (Закрыть). Закрывает открытый ранее объект:


объект.Close


Copy (Копировать). Копирует внедренные (связанные) данные в буфер обмена:


объект.Copy


CreateEmbed (Создать внедренный). Создает внедренный объект:


объект.CreateEmbed исходныйДокумент, [класс]


Обязательный аргумент исходныйДокумент представляет собой строку с именем файла, а класс может явно определять приложение-источник, иначе оно определяется исходя из расширения файла.

CreateLink (Создать связанный). Создает связанный объект, используя указанный документ:


объект.CreateLink исходныйДокумент, [исходныйЭлемент]


Delete (Удалить). Удаляет объект:


объект.Delete


DoVerb (Выполнить команду). Открывает объект для выполнения операции, например, для редактирования:


объект.DoVerb [команда]


Если аргумент команда не указан, то используется значение свойства Verb (Команда).

Drag (Перетащить). Начинает, заканчивает или отменяет операцию перетаскивания любого объекта, кроме Line (Линия), Menu (Меню), Shape (Фигура) или Timer (Таймер):


объект. Drag [действие]


Параметр действие может иметь одно из двух возможных значений:

• 0 или vbCancel (Отменить),

• 1 или vbBeginDrag (Начать перетаскивание),

• 2 или vbEndDrag (Закончить перетаскивание).

FetchVerbs (Обновить команды). Обновляет перечень команд, поддерживаемых объектом:


объект. FetchVerbs


InsertObjDlg (Диалог Вставка объекта). Отображает на экране диалог Вставка объекта:


объект.InsertObjDlg


Move (Переместить). Перемещает объект:


объект.Move Лево, [Верх], [Ширина], [Высота]


Paste (Вставить). Вставляет данные из буфера обмена:


объект.Paste


PasteSpecialDlg (Диалог Специальная вставка). Отображает на экране диалог Специальная вставка:


объект.PasteSpecialDlg


ReadFromFile (Прочитать из файла). Загружает объект из файла данных, куда он был сохранен с помощью метода SaveToFile (Сохранить в файл):


объект.ReadFromFile номерФайла


Refresh (Обновить). Принудительно перерисовывает объект на экране:


объект.Refresh


SaveToFile (Сохранить в файл). Сохраняет объект в файле данных:


объект.SaveToFile номерФайла


SaveToOle1File (Сохранить в файл OLE 1). Сохраняет объект в файле данных, имеющий формат OLE 1-й версии:


объект.SaveToOle1File номерФайла


SetFocus (Установить фокус). Перемещает фокус ввода на выбранный объект:


объект.SetFocus


ShowWhatsThis (Показать Что это?). Показывает раздел справки, относящийся к данному элементу управления:


объект.ShowWhatsThis


Update (Обновить). Получает текущие данные от приложения-источника, обновляя изображение внутри элемента управления OLE (Связь и внедрение объектов):


объект. Update


ZOrder (Z-порядок). Перемещает элемент управления OLE (Связь и внедрение объектов) вперед или назад в текущем графическом слое формы:


объект. ZOrder [положение]


Параметр положение может иметь одно из двух возможных значений:

0 или vbBringToFront (Переместить вперед),

1 или vbSendToBack (Переместить назад).

9.21.4. Пример программирования

Нарисуйте на форме объект OLE (Связь и внедрение объектов). На экране появится диалог Вставка объекта (Insert Object) (Рис.9.38).


Рис.9.38. Диалог Вставка объекта (Insert Object)


В списке Тип объекта (Object Type) будут перечислены приложения, установленные в вашей системе и поддерживающие технологию OLE – выберите одно из них, например Звукозапись (Sound Recorder). Запустится стандартная программа Звукозапись (Sound Recorder) (Рис.9.39).


Рис.9.39. Стандартная программа

Звукозапись (Sound Recorder), как объект OLE


В программе Звукозапись (Sound Recorder) выберите команду меню Правка – Вставить файл… (Edit – Insert File…). Откроется диалог Вставка файла (Insert File) (Рис.9.40).


Рис.9.40. Диалог Вставка файла (Insert File)


Найдите какой-нибудь звуковой файл, например один из хранящихся в папке C:WINDOWSMEDIA, щелкните на нем мышью и нажмите кнопку Открыть (Open). Диалог закроется, и мы снова вернемся в программу Звукозапись (Sound Recorder), но уже с открытым звуковым файлом.

Теперь осталось выполнить команду меню Файл – Выход и возврат (File – Exit and Return in) для возврата в среду разработки Visual Basic.

Для демонстрации работы объекта OLE (Связь и внедрение объектов) нажмите клавишу [F5] или щелкните мышью на кнопке Start (Запуск) панели инструментов. На экране появится работающее приложение с элементом управления OLE (Связь и внедрение объектов) (Рис.9.41).


Рис.9.41. Работающее приложение

с элементом управления OLE (Связь и внедрение объектов)


Сделайте двойной щелчок мыши на объекте OLE (Связь и внедрение объектов). Данный элемент управления активизируется на несколько секунд и будет воспроизведен выбранный звуковой файл.

Чтобы активизировать объект OLE (Связь и внедрение объектов) программным путем, выполните присвоение значения 7 свойству Action (Действие) во время работы приложения, либо используйте метод DoVerb (Выполнить команду):


OLE1.Action = 7

Глава 10. Дополнительные элементы управления

В этой главе вы научитесь:

• использовать в своих программах дополнительные элементы управления,

• применять свойства, методы и события объектов.

10.1. Общее представление о дополнительных элементах управления

Кроме рассмотренных в предыдущей главе стандартных элементов управления существуют и множество дополнительных, которые необходимы для улучшения внешнего вида приложений и облегчения работы программиста.

Такие элементы управления называют Custom Controls (Пользовательские элементы управления) и хранятся они обычно в файлах с расширением OCX.

Иногда, когда нужно обеспечить выполнение программой каких-то специальных функций, просто невозможно обойтись без применения соответствующих дополнительных элементов управления.

Custom Controls (Пользовательские элементы управления) появились в первой версии Visual Basic, когда они были 16-ти разрядными компонентами. Но уже начиная с пятой версии языка Visual Basic, в нём используются 32-х разрядные ActiveX компоненты.

Чтобы нам всем лучше ориентироваться в большом многообразии существующих дополнительных элементов управления, их можно, хотя и весьма условно, разбить на следующие категории:

• дополнительные элементы управления, созданные самой фирмой Microsoft,

• специализированные элементы управления других разработчиков,

• элементы управления вашей собственной разработки,

• приложения-источники OLE 2.0.

Компанией Microsoft было создано множество новых элементов управления, предназначенных для разработки современных профессиональных приложений.

Однако по маркетинговым соображениям они не были включены в поставку Visual Basic Learning Edition (Учебная редакция).

Ряд дополнительных элементов управления имеется в Professional Edition (Профессиональная редакция), но больше всего их в Enterprise Edition (Промышленная редакция).



Другие фирмы-производители программного обеспечения, также занимаются разработкой элементов управления, как самостоятельных, так и предназначенных для создания программных продуктов, использующих функции уже существующих пакетов.

Существует потенциальная возможность создания дополнительных элементов управления с помощью Visual Basic, в чем проявляется его большая гибкость в расширении возможностей среды программирования.

Наконец, если приложение-источник OLE 2.0 поддерживает технологию OLE Automation (Автоматизация OLE), то Visual Basic позволяет использовать объекты данного приложения в качестве самостоятельных элементов управления.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации