Анимация
JavaScript
|
Главная Библионтека FormSet.DataEnvironment.BeforeOpenTables (если свойство AutoOpenTables = .T.) FormSet.Load FormSet.Form1.Load FormSet.Form2.Load FormSet.DataEnvironment.<<Объекты Data Environment>>.Init FormSet.DataEnvironment.Init FormSet.Form1.<< Объекты в Form1>>.Init FormSet.Form1.Init FormSet.Form2.<< Объекты в Form2>>.Init FormSet.Form2.Init FormSet.Init FormSet.Activate FormSet.Form2.Activate FormSet.Form2.Deactivate FormSet.Activate FormSet.Form1.Activate FormSet.Form1.<<Первый элемент управления>>.When FormSet.Form1.GotFocus FormSet.Form1. <<Первый элемент управления>>.GotFocus При завершении работы с набором форм выполняется следующая последовательность событий: FormSet.Activate FormSet.Form2.Destroy FormSet.Form2.<< Объекты в Form2>>.Destroy FormSet.Form2.Unload FormSet.Form1.Destroy FormSet.Form1.<< Объекты в Form1>>.Destroy FormSet.Form1.Unload FormSet.Unload FormSet.DataEnvironment.AfterCloseTables FormSet.DataEnvironment.Destroy FormSet.DataEnvironment.<< Объекты Data Environment>>.Destroy При активизации объекта Grid пользователем происходит следующая последовательность событий: Form.Grid.When Form.GotFocus Form.Grid.AfterRowColChange Последнее событие AfterRowColChange возвращает номер колонки, в которой находится курсор, то есть которая является активной. Это событие сопровождает и каждое перемещение пользователя по клеткам Grid, и таким образом, любой переход курсора в другую клетку сопровождается двумя событиями: Form.Grid.BeforeRowColChange Form.Grid.AfterRowColChange Событие BeforeRowColChange возвращает номер колонки, в которой находился курсор до перехода в новую клетку. Если пользователь пометил запись для удаления или в программе выполнилась команда DELETE, для объекта Grid генерируется событие Deleted, которое возвращает номер помеченной для удаления записи. При прокрутке данных с помощью линейки прокрутки каждое нажатие на кнопку прокрутки или перемещение движка вызывает выполнение события Scrolled, которое возвращает следующий код для идентификации действий пользователя: • 0 - нажата кнопка прокрутки вверх. • 1 - нажата кнопка прокрутки вниз. • 2 - пользователь щелкнул мышкой на вертикальной линейке прокрутки сверху от движка. • 3 - пользователь щелкнул мышкой на вертикальной линейке прокрутки снизу от движка. • 4 - нажата кнопка прокрутки влево. • 5 - нажата кнопка прокрутки вправо. • 6 - пользователь щелкнул мышкой на горизонтальной линейке прокрутки слева от движка. • 7 - пользователь щелкнул мышкой на горизонтальной линейке прокрутки справа от движка. При переходе к другому элементу управления из Grid происходит следующая последовательность событий: Form.Grid.Valid Form.<<Выбранный элемент управления>>.When Form.Grid.BeforeRowColChange Комбинированный список имеет несколько специфических событий. Если проследить последовательность действий пользователя при активизации комбинированного списка, нажатии на раскрывающую стрелку, нажатии на кнопку прокрутки списка вниз, а затем вверх и при выборе пункта, то мы получим следующую последовательность событий: Form1.Combo1.When Form1.GotFocus Form1.Combo1.GotFocus Form1.Combo1.MouseDown,1,0,108,48 Form1.Combo1.DropDown && Нажатие на раскрывающую стрелку Form1.Combo1.MouseUp,1,0,108,48 Form1.Combo1.MouseDown,1,0,88,117 Form1.Combo1.MouseUp,1,0,88,117 Form1.Combo1.DownClick && Нажатие на кнопку прокрутки вниз Form1.Combo1.MouseDown,1,0,92,11 Form1.Combo1.MouseUp,1,0,92,11 Form1.Combo1.UpClick <>&& Нажатие на кнопку прокрутки вверх Form1.Combo1.MouseDown,1,0,79,11 Form1.Combo1.MouseUp,1,0,29,27 Form1.Combo1.InteractiveChange && Изменение значения в списке Form1.Combo1.Click Form1.Combo1.Valid Form1.Combo1.When Form1.Combo1.Valid Form1.<<Следующий элемент управления>>.When Form1.Combo1.LostFocus Для текстового поля при вводе в него данных с помощью возникающих событий мы можем отследить ввод каждого символа. Поэтому рассмотрим последовательность событий для этого элемента управления. Если текстовое поле Text1 будет размещено в форме Form1, и в текстовое поле мы перейдем с помощью мыши, и будем вводить три символа Rus, а затем нажмем клавишу Enter, то для этого текстового поля произойдет следующая последовательность событий: Form1.Text1.When && Проверка доступности Form1.Text1.Gotfocus Form1.Text1.MouseDown, 1, 0, 25, 76 Form1.Text1.MouseUp, 1, 0, 25, 76 Form1.Text1.Click Form1.Text1.KeyPress, 82,1 && Нажимаем клавишу R Form1.Text1.InteractiveChange Form1.Text1.KeyPress, 117,0 && Нажимаем клавишу u Form1.Text1.InteractiveChange Form1.Text1.KeyPress, 115,0 && Нажимаем клавишу s Form1.Text1.InteractiveChange Form1.Text1.KeyPress, 13,0 && Нажимаем клавишу Enter Form1.Text1.Valid Form1.Text1.LostFocus 5.4. Использование методов В этом параграфе мы остановимся на методах, которые можно использовать при работе с большинством объектов. Если мы хотим в Visual FoxPro создать какой-либо объект в объекте-контейнере, например в форме, то в этом случае мы должны не создавать его с помощью функции CREATEOBJECT(), а добавлять его в объект-контейнер, используя метод Object.AddObject(cWame, cClass [, cOLEClass] [, alnitl, aInitI ...]) С помощью параметра cName мы задаем имя добавляемого объекта, а параметром cClass указывем класс, на основе которого будет создан объект в объекте-контейнере, указанном в Object. Определение класса, на основе которого создается объект, должно быть доступно, то есть если это не базовый класс, мы должны заранее открыть соответствующую библиотеку классов командой SET CLASSLIB. Если мы добавляем OLE-объект, то класс, на котором он будет основан, можно указать с помощью параметра cOLEClass. С помощью alnitl, aInitl... можно передать параметры в событие Init создаваемого объекта. В Visual Basic неким аналогом этого метода может являться метод Add, который позволяет добавлять объект в коллекцию. Для удаления объекта из его контейнера в Visual FoxPro используется метод RemoveObject, а для удаления объекта из коллекции в Visual Basic - метод Remove. Если объект использует данные, которые могут обновляться во время работы программы, использовать их последний вариант поможет метод Object.Refresh который позволяет немедленно перерисовать форму или указанный объект. Причем, когда перерисовывается форма, автоматически обновляются все содержащиеся в ней элементы управления, когда перерисовывается страничный блок PageFrame, автоматически обновляется только активная страница Page. Control.SetFocus Позволяет активизировать указанный элемент управления. [Object.]ZOrder([nalue]) Позволяет установить графический уровень отображения указанного объекта. Параметр nValue может принимать либо значение 0, либо 2. Если nValue равен 0 (по умолчанию), то объект выводится на переднем плане, если 2 - на заднем. Задний план обычно используется для отображения результатов работы графических методов (рисование линий, вывод изображений и т. д.), а передний - для отображения объектов. Объекты, отображаемые на переднем плане, перекрывают изображение заднего плана. Object.Move(nLeft [, nTop [, nWidth [, nWeight]]]) Позволяет переместить объект в нужную точку, которая задается новыми координатами левой nLeft и верхней nTop границами объекта. При необходимости можно задать для объекта новую ширину nWidth и высоту nHeight. Обязательным является параметр nLeft, остальные должны указываться без пропусков, то есть если вы задаете ширину объекта, то должны использовать в методе все параметры. Если перемещаемый объект входит в объект-контейнер, то новые координаты указываются относительно левого верхнего угла объекта-контейнера, которые равны 0, 0. Например, если вы хотите переместить форму, размеры которой установлены в фокселях, на пятую строку и двадцатую колонку экрана, задайте следующий код: ThisForm.Move(20, 5) Object.Hide Скрывает форму путем присвоения свойству Visible значения .F.. Элементы управления в скрытой форме, естественно, становятся недоступными для пользователя, но доступны для воздействия на них с помощью программы. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [ 45 ] 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |