Программирование >>  Разработка пользовательского интерфейса 

1 ... 35 36 37 [ 38 ] 39 40 41 ... 147


READ TIMEOUT 20

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

* Определяем массив для создания ссылки PUBLIC ARRAY aTest(1)

DIMENSION aTest(5)

* Очищаем экран

SCREEN.CLS

* Создаем пять форм и помещаем ссылки на них в массив

FOR nCount = 1 TO 5 aTest(nCount) = CREATEOBJECT( frmTestForm )

* Размещаем их по центру экрана aTest(nCount).AutoCenter = .T.

ENDFOR

* Выводим созданные формы на экран

FOR nCount = 1 TO 5

IF TYPE( aTest(nCount) ) = O

aTest(nCount).Show

ENDIF

ENDFOR

* Определяем класс для создаваемых форм с кнопкой

* для ее стирания

DEFINE CLASS frmTestForm AS Form ADD OBJECT cmdExit As CommandButton WITH ; Caption = \<< Выход , ;

Top = 111, ;

Left = 108, ; Height = 29, ;

Width = 94, ;

Visible = .T.

PROCEDURE cmdExit.Click

RELEASE ThisForm ENDPROC ENDDEFINE

Функция

AINSTANCE(ArrayName, cClassName)

Размещает все образцы класса в массиве. Аргумент ArrayName определяет имя массива, в котором размещаются образцы. Если массива, который вы определяете, не существует, Visual FoxPro автоматически создаст его. Если массив существует, но не достаточно большой, чтобы вместить все образцы, Visual FoxPro автоматически увеличит его размер. Если массив оказывается больше, чем необходимо, Visual FoxPro усечет его до нужных размеров. В случае, когда массив существует и функция AINSTANCE() возвращает 0 - никакие образцы не найдены, - массив остается неизменным. Аргумент cClassName определяет имя базового класса Visual FoxPro, пользовательского класса или объекта Visual FoxPro (Cursor, DataEnvironment, Relation). Функция AINSTANCE() возвращает количество образцов класса, размещенных в массиве. AMEMBERS(ArrayName, Object [, 1 2])

Размещает в массиве для указанного объекта имена свойств, процедур и включенных объектов. Аргумент ArrayName определяет массив, в который записываются имена элементов свойств для ObjectName. Если массив не достаточно большой, чтобы вместить все имена, Visual FoxPro автоматически увеличивает его размер. Если вы определяете существующий двумерный массив, Visual FoxPro преобразует его в одномерный. Аргумент Object определяет объект, элементы свойств которого размещаются в массиве, указанном в ArrayName. Аргумент Object может представлять собой любое выражение, имеющее отношение к объекту, типа ссылки на объект, переменной объекта или элемента массива объекта. Аргумент 1 указывает на то, что в массив будут включены как свойства объекта, так и методы и включенные объекты. Массив является двумерным со вторым столбцом, уточняющим, к какому типу относится элемент, внесенный в список в первом столбце. Возможные значения для второго столбца: Property, Event, Method или Object. Аргумент 2 указывает на то, что массив будет содержать имена объектов, являющихся элементами объекта, указанного в Object. Массив является одномерным. Эта опция обеспечивает метод для определения имен всех форм в наборе форм или элементов управления в форме. Функция AMEMBERS() возвращает количество объектов, свойств и процедур для объекта, либо 0, если массив не может быть создан.



Базлвый классы Visual РокРпо

Библиогеш! базовых клэ<хов разребатчика

Библиотеки классов для приложения

Обьеюы и элементы упревлвния приложения

Рис. 5.3.

В табл. 5.1 был приведен список объектов, которые программист может создать в Visual FoxPro на основе базовых классов. Визуально представляемые объекты легко создаются при проектировании форм простым перетаскиванием нужного класса объекта с панели инструментов Form Control на поверхность формы. Соответствующие кнопки этой панели инструментов можно видеть на рис. 5.4.

COMPOBJ( oExpressionl, oExpression2)

Сравнивает свойства двух объектов и возвращает значение истина (.T.), если их свойства и значения свойств идентичны. Аргументы oExpressionl, oExpression2 определяют объекты для сравнения. Параметры oExpressionl и oExpression2 могут быть любыми определяющими объекты выражениями, такими как ссылки на объект, переменные объекта или элементы массива объекта.

Функция COMPOBJ() возвращает значение ложь (.F.), если объект имеет такие свойства, которых нет у другого объекта, или если объекты имеют идентичные свойства, но значения одного или нескольких свойств оказываются различными.

5.2. Объекты и их свойства

Если из материалов предыдущего параграфа вы сделали вывод, что основной смысл ООП заключается в создании объектов и наличии удобных средств манипуляции ими, то мы с вами почти безоговорочно соглашаемся. А поэтому и перейдем к более подробному обсуждению этих объектов.

В этом параграфе мы познакомимся с

основными объектами и элементами управления для создания интерфейса пользователя;

назначением отдельных объектов;

основными свойствами объектов;

компонентами для расширения возможностей разработчика - объектами ActiveX.

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

5.3. Конечно, если быть совсем точным, эта схема существенно упрощена по сравнению с реальными возможностями. В распоряжении программиста, разрабатывающего приложение на Visual FoxPro, еще есть объекты для работы с данными при построении форм и отчетов, которые не имеют классов, и есть возможность использовать объекты других приложений и объекты ActiveX. Об этом мы поговорим в следующих главах.

В отличие от Visual FoxPro, в Visual Basic нет системы классов, и программист работает непосредственно с набором предоставляемых ему объектов. По аналогии с Visual FoxPro можно сказать, что на схеме, приведенной на рис. 5.3, в его распоряжении находятся первый и последний блоки.



Label EditBoy

Comman d В utton G ro u p

CheckBox ListBox Grid Timer

OLE Container Control Line Separator

-rrni (O

Text Box

CommandButton

Option В utton Group

ComboBox

Spinner

Image

Page Frame

OLE Bound Control

Shape

Рис. 5.4.

В Visual Basic аналогичные функции выполняет панель инструментов, которая называется ToolBox. Она содержит довольно похожий набор объектов и элементов управления (рис. 5.5). Причем, если в Visual FoxPro мы можем расширить набор объектов, используемых при разработке приложения за счет подключения дополнительных библиотек классов, то в Visual Basic дополнительные объекты просто включаются в панель инструментов ToolBox.

Label Frame

CheckBox ComboBox HScroolBar Timer DirLislBoK Shape Image

&

¥

]

PictureBox TextBox

Command Button Option Button

ListBox

VScroolBar

DriveListBox

FileListBox

Line

Data

Рис. 5.5. Визуальные объекты и элементы управления в Visual Basic

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

Дадим краткий комментарий тех свойств, которые есть у большинства объектов.

Как вы уже заметили, чтобы что-то сделать с объектом, надо к нему обратиться. Каждый объект имеет уникальный идентификатор, который называется именем объекта. При создании объекта по умолчанию ему назначается имя, которое включает имя класса, на основе которого создается объект, и цифру по порядку включения в объект-контейнер. Например, при создании кнопки управления в форме она получит имя CommandButton1. Если мы создадим в этой форме еще одну кнопку, она получит имя CommandButton2 и т. д. Чтобы изменить имя объекта, надо



1 ... 35 36 37 [ 38 ] 39 40 41 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика