|
Программирование >> Разработка пользовательского интерфейса
Object.WindowType [ = nType] Определяет поведение форм в наборе форм, если она запущена командой DO FORM. Для FormSet доступны следующие значения параметра Type: nType Описание 0 Независимо от режима. 1 Модально. Никакие объекты других форм не могут стать активными, и меню не доступно. Все формы в FormSet активны. 2 Чтение. Объект FormSet ведет себя, как будто он был активизирован командой READ. Выполнение останавливается на методе Show или команде DO FORM. Когда форма дезактивирована, выполнение программы продолжается. Включено для совместимости снизу вверх. 3 Модальное чтение. FormSet ведет себя, как будто он был активизирован командой READ MODAL. Выполнение программы останавливается на методе Show или команде DO FORM. Любые объекты формы в FormSet и объектах формы, указанных в свойстве WindowList, доступны, но объекты других форм и меню не доступны. Включено для совместимости снизу вверх. В Visual FoxPro в набор стандартных объектов входят и объекты для создания многостраничных форм. Объект Page создает страницу в страничном блоке для размещения блока данных. Страница объединяет информацию, одновременно видимую на экране пользователем. Перелистывая страницы, пользователь может работать с большим объемом данных без необходимости перехода в другие окна или формы. Страница как объект может входить только в страничный блок (PageFrame). В свою очередь, страница является объектом-контейнером и для определения количества включенных в нее элементов управления можно использовать свойство ControlCount. Для ссылки на отдельный элемент управления по его номеру и задания для него определенных значений свойств используется свойство Controls. Object.KeyPreview [ = lExpression] Определяет, будет ли событие KeyPress в элементе управления прервано событием KeyPress в форме. Если параметр lExpression принимает значение .T., то сначала событие KeyPress получает форма, а затем активный элемент управления; если .F. (по умолчанию), то событие KeyPress получает активный элемент управления, а форма не получает. Вы можете использовать это свойство, чтобы создать для страницы в форме процедуру управления с помощью клавиатуры. Например, когда прикладная программа использует функциональные клавиши, вы можете обрабатывать нажатия клавиши на уровне формы скорее, чем для каждого элемента управления. Page.PageOrder [ = nOrder] Определяет относительный номер страницы в страничном блоке, что будет влиять на порядок их расположения. Объект PageFrame создает страничный блок из набора страниц. Страничный блок позволяет компактно расположить большие объемы данных для работы с ними пользователя за счет размещения их на отдельных страницах, которые могут перелистываться. Узнать номер активной в данный момент страницы можно с помощью свойства ActivePage. Объект ToolBar создает в Visual FoxPro панель инструментов, которая может облегчить пользователю выполнение часто повторяющихся действий. На панели инструментов мы можем размещать любые элементы управления. Это позволяет создавать универсальный набор элементов управления для использования с однотипными формами, например справочниками, что сокращает время разработки программы и облегчает обучение пользователей. Панель инструментов имеет несколько специфических свойств. Object.Movable [ = lExpression] Определяет, может ли панель инструментов перемещаться пользователем во время выполнения программы. Если параметр lExpression принимает значение .T. (по умолчанию), то панель инструментов может перемещаться. Если .F., то объект не может быть перемещен пользователем. Object.Sizable = lExpression Определяет возможность изменения размеров панели инструментов. По умолчанию параметр lExpression равен .T., и размеры панели инструментов могут быть изменены пользователем. Если параметр lExpression будет равен .F., то сделать этого будет нельзя. ToolBar.Docked [=lExpression] Возвращает логическое значение, с помощью которого можно определить, встроена панель инструментов в рамку окна Visual FoxPro (.T.) или нет (.F.). Если используется параметр lExpression, то свойство возвращает результат сравнения возвращаемого значения и параметра lExpression. Если вы хотите поэкспериментировать со свойствами панели инструментов, задавая команды из окна Command, то вам поможет следующий образец, который обеспечивает доступ к панели инструментов, добавленной к форме при ее проектировании. ? SCREEN.ActiveForm.Parent.Office toolbar1.Docked При добавлении панели инструментов к форме создается набор форм, поэтому для ссылки на него, как на объект более высокого уровня, используется указатель Parent. nPosition = ToolBar.DockPosition Определяет положение панели инструментов в окне Visual FoxPro. Параметр nPosition может принимать следующие значения: -1 - панель инструментов не может быть встроена; 0 - встроена в верхнюю рамку; 1 - в левую; 2 - в правую; 3 - в нижнюю. На панели инструментов можно размещать специальный объект - Separator, который помещает пробел между элементами управления. Это позволяет визуально создавать на панели инструментов группы элементов управления, так как по умолчанию размещаемые на панели инструментов элементы управления следуют вплотную друг за другом. Универсальными объектами в Visual FoxPro для создания компонентных элементов управления, включающих несколько отдельных объектов, являются объекты Control и Container. Об отличиях между этими объектами мы уже рассказывали. Невизуальные объекты Объект Custom создает единственный в Visual FoxPro невизуальный объект, исключая уже упоминавшиеся объекты Container и Control, которые выполняют специфические функции объединения других элементов управления. Этот объект удобно использовать для создания и последующего запуска стандартных, часто используемых процедур, при создании которых не требуется визуализация объекта. В качестве примера использования объекта Custom рассмотрим следующий пример, в котором мы создадим пользовательский класс, зашифровывающий пароль. Пароль может храниться в таблице с данными о доступе пользователей к элементам системы в зашифрованном виде. После ввода пароля пользователем хранимый пароль расшифровывается и сравнивается с введенным. В приводимой программе создается форма, в которой в поле, расположенное в левом верхнем углу, вводится пароль. Вводимые символы скрыты, и их число отображается звездочками. Нажмите кнопку Зашифровать , и вы увидите в нижних полях формы слева зашифрованное значение, а справа введенное. Успехов в шифровании! *** Пример использования объекта Custom для шифрования пароля frmPwdForm = CREATEOBJECT( PwdForm ) && Создаем форму. frmPwdForm.Visible = .T. READ EVENTS * Описываем класс формы DEFINE CLASS PwdForm AS FORM Caption = Шифрование пароля * Добавляем объект в форму для формирования пароля ADD OBJECT CustPassword AS Pass Word Height = 130 Width = 350 Autocenter = .T. * Добавляем текстовое поле для ввода пароля ADD OBJECT txtText1 AS TextBox WITH ; Height = 25, ; Left = 25, ; Top = 20, ; Width = 125, ; PasswordChar = * , ; Name = txtText1 * Добавляем текстовое поле для вывода * зашифрованного пароля ADD OBJECT txtText2 AS TextBox WITH ; Height = 25, ; Left = 25, ; Top = 72, ; Width = 125, ; Readonly = .T., ; Name = txtText2 * Добавляем в форму кнопку для вызова процедуры * шифрования, * которая содержится в cmdCommand1.Click ADD OBJECT cmdCommand1 AS CommandButton WITH ; Top = 20, ; Left = 200, ; Height = 29, ; Width = 125, ; Caption = Зашифровать , ; Name = cmdCommand1 * Добавляем в форму текстовое поле для вывода введенного * пароля ADD OBJECT txtText3 AS TextBox WITH ; ControlSource = ; THISFORM.custPassword.cUnencrypted , ; Height = 25, ; Left = 200, ; ReadOnly = .T., ; Top = 72, ; Width = 125, ; Name = Text3 * Процедура, выполняемая после набора пароля PROCEDURE txtText1.LostFocus THISFORM.custPassword.Encrypt It(TRIM(THIS.Value)) THISFORM.txtText2.Value =; THISFORM.custPassword.cEncrypted THISFORM.cmdCommand1.SetFocus ENDPROC * Процедура, выполняемая при нажатии на кнопку * Зашифровать PROCEDURE cmdCommand1.Click THISFORM.custPassword.Decrypt It(THISFORM.custPassword.; cEncrypted) THISFORM.Refresh THISFORM.txtText1.SetFocus ENDPROC * Процедура, выполняемая при выходе из формы PROCEDURE DESTROY CLEAR EVENTS ENDPROC
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |