Читайте также: |
|
Свойства
Свитки и утилиты, как частный случай свитка имеют всего два свойства. Первое содержит состояние свитка
Свиток. open
и возвращает true, если свиток раскрыт, и false, если свернут. Второе свойство
Свиток. scrollPos
строго говоря, относится не к конкретному свитку, а ко всем свиткам, входящим в утилиту или размещенным на окне. Оно содержит вертикальное смещение свитка в окне или на панели Utilites, и имеет смысл, только если свитки не умещаются на панели или в окне. Оба свойства доступны как для чтения, так и для записи, причем запись в них приводит к тому, что свиток немедленно принимает вид, соответствующий новому значению. Бывает удобно сохранить эти свойства в переменную при закрытии окна или утилиты, а при открытии восстановить запомненные значения.
Методы
Открытие или закрытие утилиты можно вызывать программно, используя для этого функции
openUtility Утилита
и
closeUtility Утилита
В качестве параметра этим функциям передается переменная, указанная в определении утилиты.
Обработчики событий
Собственно для свитка или утилиты можно написать пять функций-обработчиков событий. Функция
on Свиток_или_утилита open do
будет вызвана при открытии утилиты или свитка, а
on Свиток_или_утилита close do
при их закрытии. Если Вам надо, чтобы утилита при каких-либо условиях не закрывалась, или, например, выдать при ее закрытии запрос на сохранение файла, используйте функцию
on Свиток_или_утилита oktoclose do
Выражение, составляющее тело такой функции, должно возвращать логическое значение. Если оно вернет значение true, то свиток или утилита закроются нормальным образом. Если же возвращаемым значением будет false, то все действия пользователя будут проигнорированы, и утилита останется открытой. Например, приведенная ниже утилита не закроется до тех пор, пока кнопка с надписью “ OK To Close ” не будет нажата
utility ui_oktoclose "OKToClose Test"
(checkbutton Cbut "OK To Close"
on ui_oktoclose oktoclose do Cbut.state
)
Если свиток находится на перемещаемом окне, а о том, как их создавать, смотри ниже, то при перемещении или изменении размеров этого окна будут вызываться следующие обработчики
on Свиток resized Имя_переменной do
Чтобы в теле функции-обработчика получить значение новых размеров окна, необходимо обратится к переменной, имя которой указано в заголовке. Например
on MyRollout resized MySize do
(…
format “Width = % Height = %\n” MySize.x MySize.y
…
)
Как видно из приведенного примера, параметр обработчика события resized представляет собой точку в двумерном пространстве, первая координата которой содержит ширину окна, а вторая – высоту. Примерно та же картина наблюдается и для обработчика перемещения
on Свиток moved Имя_переменной do
Параметр этого обработчика так же содержит точку в двумерном пространстве, которая определяет координаты левого верхнего угла окна на экране. Следует только отметить, что данные события генерируются только для одного свитка окна, того, который определен первым.
Дата добавления: 2015-10-31; просмотров: 75 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Составные части тела свитка | | | Создание перемещаемых окон |