348______________________________________________Глава 5

личных инструментов. А общую логику работы вы можете придумать сами или по-
заимствовать ее из примера.

Приложение выполняет следующие функции:

• Установка основного и дополнительного цветов. Щелчок на панели цветов ле-
вой кнопкой мыши устанавливает основной цвет, а щелчок правой кнопкой —
вспомогательный.

• Кисть — кнопка SBBrush. Закрашивает замкнутую область, ограниченную
цветом того пикселя, который указан щелчком мыши. При щелчке левой
кнопкой закрашивание производится основным цветом, при щелчке правой
кнопкой — вспомогательным.

• Индикация цвета — кнопка SBColor. В этом режиме вы можете указать кур-
сором мыши любой пиксель на изображении и, щелкнув левой кнопкой, уста-
новить цвет этого пикселя как основной, а щелкнув правой кнопкой, устано-
вить его как вспомогательный цвет.

• Карандаш — кнопка SBPen. В этом режиме вы можете рисовать произволь-
ную кривую основным цветом.

• Выделение фрагмента — кнопка SBRect. Фрагмент выделяется точечной рам-
кой. Выделенный фрагмент можно в дальнейшем перетащить мышью на дру-
гое место. Если в процессе перетаскивания нажата клавиша Ctrl, то произво-
дится копирование фрагмента, в противном случае — вырезание, при котором
область начального размещения фрагмента закрашивается вспомогательным
цветом. Выделенный фрагмент может быть также скопирован или вырезан в
буфер обмена Clipboard соответствующими командами меню.

• Стирание изображения (ластик) — кнопка SBErase. Перемещение ластика за-
крашивает область под ним во вспомогательный цвет.

• Рисование прямоугольника — кнопка SBRectang. Рисуется прямоугольная
рамка основным цветом.

• Рисование заполненного прямоугольника — кнопка SBFillRec. Рисуется пря-
моугольная рамка основным цветом и прямоугольник внутри закрашивается
вспомогательным цветом.

• Рисование прямой линии — кнопка SBLine. Рисуется прямая линия основ-
ным цветом.

• Открытие графического файла — команда Файл | Открыть.

• Сохранение изображения в графическом файле — команда Файл | Сохранить
как... .

• Отмена операций, выполненных последним использованным инструментом —
команда Правка | Отменить.

• Копирование или вырезание выделенного фрагмента изображения в буфер об-
мена Clipboard — команды Правка | Копировать или Правка Вырезать.

• Вставка графического изображения типа битовой матрицы из буфера обмена

Clipboard — команда Правка | Вставить.

Начнем с рассмотрения функции выделения фрагмента. Она осуществляется
методом DrawFocusRect. В этом режиме при событии OnMouseDown холста —
компонента Image3, выполняются операторы:

// Запоминание начального положения курсора мыши
ХО = X;

YO = У;

// формирование начального положения области фрагмента
R.TopLeft = Point(X,Y);

R.BottomRight = Point(X,Y);