Полезные примеры

Теперь мы немного поработаем с Class Designer и создадим с помощью данного инструмента еще несколько классов. Как я уже говорил, работа с этим конструктором почти ничем не отличается от работы с конструктором форм. И вот первое задание, на “засыпку”: попробуй изменить цвет командной кнопки. Что, никак? И не получится (по крайней мере, в шестой версии Visual FoxPro). Тем не менее мы можем создать свой класс с определенными свойствами.

1. В окне диспетчера проекта перейдем на вкладку Classes (Классы) и нажмем кнопку New (Новый).

2. В открывшемся диалоговом окне укажем имя нового класса, класс-родитель и библиотеку, в которой будет сохранен новый класс.

Мы создаем новый класс на основе базового класса Container

3. После нажатия кнопки ОК открывается диалоговое окно Class Designer (Конструктор классов), в котором непосредственно и будет происходить дальнейший процесс создания нового класса. Воспользовавшись стандартной панелью Form Controls (Элементы управления экранной формы), разместим в окне Class Designer (Конструктор классов) объект container, а затем поместим в него объект shape.

4. Настроив такие свойства наших объектов, как цвет, размеры и т.д., обратимся к событию init объекта container (который имеет имя ColorButton):

1
THIS.SHAPE1.WIDTH=THIS.WIDTH-2 THIS.SHAPE1.HEIGHT=THIS.HEIGHT-2

Что произойдет? Да просто размеры объекта shape соответствующим образом будут “подогнаны” под размер “своего” контейнера.

Объекты размещены в окне Class Designer

5. А теперь напишем обработку для события click объекта shape:

1
2
3
4
5
THIS.LEFT=THIS..LEFT+2
THIS.TOP=THIS..TOP+2
WAIT "" TIMEOUT 0.1
THIS.LEFT=THIS..LEFT-2
THIS.TOP=THIS..TOP+2

Здесь мы изменяем значения свойств Left и тор, устанавливая их равж ми соответствующим свойствам контейнера, которому “принадлежит” данный объект. Изменение данных свойств приводит к эффекту “нажатия” на объект, после чего мы восстанавливаем исходные значения указанных свойств.

А для чего нам нужна строка WAIT “” TIMEOUT O.I? Дело в том, что изменение и восстановление этих значений произойдет так быстро, что мы ничего и не увидим! А команда WAIT прерывает выполнение программы на время, указанное в параметре TIMEOUT. Время указывается в секундах. Более того, после WAIT необходимо использовать пустые кавычки, чтобы подавить вывод системного сообщения FoxPro “Press any key to continue…” (Для продолжения нажмите любую клавишу). Кстати, в этих же кавычках можно ввести текст своего собственного сообщения.

А какой в этом практический смысл? Да сам не знаю. Хотя, если подумать… Можно, допустим, создать собственную панель инструментов и разместить там такие кнопки разного цвета. При нажатии на кнопку можно менять цвет активной экранной формы или цвет активного элемента управления. Можно использовать в какой-нибудь игрушке… А можно и вообще нигде не использовать — поучились и ладно.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100