Реферат: Работа с базами данных через интерфейс

Рис.4

Чтобы запрограммировать обработку двойного щелчка на элементе списка, следует найти событие DblClick в окне свойств списка (List) и вписать следующий код:

form1.text1.value=form1.list1.List(form1.list1.listindex)

Номер выбранного элемента в списке задается через свойство listIndex . Вообще, элементы списка доступны через свойство List ( i ), где i определяет номер элемента списка. Содержимое текстового поля доступно через свойство value компонента TextBox .

Добавление начальных значений в список по команде addItem реализуется в обработчике события Init для формы:

Do menu1.mpr with thisform

thisform.list1.addItem("barbate")

thisform.list1.additem("dreadfull")

thisform.list1.additem("rapid")

Первую строку сохраним для последующих целей. Строки

thisform.list1.addItem("barbate")

thisform.list1.additem("dreadfull")

thisform.list1.additem("rapid")

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

Достаточный интерес представляет использование чужеродных компонентов – ACTIVEX . Для этого воспользуемся контейнером OLEBoundControl . Компонент OleBoundControl расположен на панели элементов управления рядом с кнопками, текстовыми полями, списками, рисунками и пр. Этот компонент предназначен для хранения в нем объекта OLE. Таким объектом может быть документ WORD, мультимедийный файл, рисунок PaintBrush и др. Компонент OleBoundControl обычно используют для отображения полей таблиц, содержащих OLE-объекты. Для того чтобы воспользоваться OleBoundControl создадим новую таблицу, в которой будет всего два поля: nickname (кличка) таракана и photo (рисунок, который мы подготовим в PaintBrush). Таблицу назовем runners (бегуны). Полю nickname при формировании таблицы в конструкторе присвоим тип Character, а полю photo – тип General. В FoxPro тип General как раз и используется для хранения OLE-объектов.

Нам нужно занести рисунки с изображениями тараканов в General-поля. Это делается следующим образом. Откроем таблицу runners командой (кнопкой) Browse. Затем дважды щелкаем по полю General в каждой записи. Откроется окно редактора. Выберем в главном меню FoxPro п. Edit, а в нем – п.Insert Object. В новом окне следует выбрать тип вставляемого объекта (если он создается впервые) и указать, является ли он новым (т.е. его требуется создать) или находится в файле. Здесь выбираем второй вариант, поэтому тип объекта указывать не надо. Следует выбрать файл со вставляемым объектом, используя кнопку Browse. Никаких других установок не производим. Отметим, что в этом окне можно установить опцию Связать . Если это сделать, то любое изменение объекта-оригинала автоматически приведет к изменению объекта, помещенного в таблицу. Итак, после этих объяснений и предварительных действий считаем, что в таблице runners поля photo содержат рисунки с изображениями тараканов.

Разместим на форме компонент OleBoundControl (перечеркнут на рис.5).

Рис.5

Теперь расширим наше приложение таким образом, чтобы при выборе из списка клички, выбранная кличка отыскивалась в таблице runners и на компоненте OleBoundControl появлялся соответствующий рисунок. Для этого нужно связать компонент OleBoundControl с полем photo таблицы runners. Выделите мышью объект OleBoundControl и в окне его свойств найдите свойство ControlSource. Вручную установите в качестве значения этого свойства строку runners.photo (Рис.6).

Рис.6

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

form1.text1.value=form1.list1.List(form1.list1.listindex)

close tables

use runners

locate for nickname=form1.text1.value

if found()=.T.

Form1.OleBoundControl2.Refresh

Endif

В приведенном фрагменте часть строк

close tables

use runners

К-во Просмотров: 251
Бесплатно скачать Реферат: Работа с базами данных через интерфейс