346______________________________________________Глава 5

обеспечивают копирование изображения фрагмента канвы компонента Image2 в
указанную область канвы компонента Imagel в режиме cmSrdnvert. После вы-
полнения функции CopyRect в первый раз изображения в компонентах Imagel и
Image2 налагаются друг на друга, а в результате выполнения функции CopyRect
во второй раз исходное изображение на канве компонента Imagel восстанавлива-
ется.

Операторы

Imagel->Canvas->CopyMode = cmWhiteness;                            ^
Imagel->Canvas->CopyRect(Rect(0,0,200,200),Image2->
Canvas,Rect(0,0,200,200)) ;

просто очищают указанную область канвы компонента Imagel, закрашивая ее бе-
лым цветом. При этом изображение в компоненте Image2 никак не участвует в
операциях копирования.

На рис. 5.12 приведен пример приложения, которое позволяет посмотреть бо-
льшинство режимов копирования. Этот пример вы можете посмотреть на диске,
прилагаемом к книге, или сделать его сами (он достаточно простой).

Рис. 5.12

Демонстрация режимов копирования

В приложении имеются два окна, содержащие разноцветные горизонтальные
и вертикальные полосы. Соответствующими кнопками любое из них можно загру-
зить в третье окно, а затем скопировать в него изображение одного из первых двух
окон. Предварительно в выпадающем списке можно выбрать режим копирования.

Поэкспериментируйте с этим приложением, чтобы понять различия между ре-
жимами копирования. Вы уже знаете все, чтобы самим спроектировать такое при-
ложение.

Еще один метод копирования — BrushCopy вы можете посмотреть в справоч-
ной части книги. Он сохраняется, как заявляют сами авторы C++Builder, только
для совместимости с более ранними версиями системы.

Помимо методов копирования свойство CopyMode используется также мето-
дом рисования на канве Draw. Его описание:

void _fastcall Drawfint X, int Y, TGraphic* Graphic);