Всеми этими возможностями обладает программа, которую мы сейчас рассмотрим. На рис. 3.18 показано, как выглядит окно программы сразу после начала сеанса. Пять прямоугольников в верхней части окна - это кнопки выбора одного из режимов рисования: Отрезок, Прямоугольник, Треугольник, Пиксель и Текст. Режим выбирается щелчком на поле соответствующего прямоугольника левой кнопкой мыши. После того как будет выбран режим Отрезок, следующими двумя щелчками левой кнопкой мыши пользователь может указать положение конечных точек отрезка. При этом указатель мыши должен находиться в рабочей области окна - вне зоны кнопок режима. После задания второй крайней точки программа выводит соответствующее изображение отрезка, причем он вычерчивается текущим цветом. По этой же схеме формируются изображения прямоугольников и треугольников. При вычерчивании прямоугольника задаются две точки на противоположных углах по диагонали, а при вычерчивании треугольника - три точки вершин. Новый режим можно выбрать после вычерчивания любого очередного объекта. В режиме Пиксель последовательные щелчки левой кнопкой мыши задают положение маленьких квадратиков, размер которых регулируется, начиная с двух пикселей, причем квадратики заливаются случайно выбранным цветом. В режиме Текст пользователь вводит текст с клавиатуры, который отображается, начиная с последней указанной в рабочем поле точки.
Два меню вызываются на экран после щелчка средней и правой кнопками мыши (рис. 3.19). То меню, которое вызывается правой кнопкой, позволяет пользователю очистить экран (команда Clear) или прекратить выполнение программы (команда Exit). Меню, которое вызывается средней кнопкой, имеет иерархическую структуру и включает три подменю. При выборе пункта Color в подменю основного меню можно указать новый текущий цвет. Выбор пункта Fill в основном меню позволяет задать в подменю режим заполнения (пункт Fill on) или контурного изоб-
Ввод и взаимодействие с пользователем
ражения (пункт Fill off) прямоугольников и треугольников. Последний пункт основного меню, Pixel size, позволяет указать в подменю увеличение размеров формируемых квадратиков (пункт increase pixel size) или их уменьшение (пункт decrease pixel size).