Графика и мультимедиа___________________________________333

пиктограммы для нового компонента, включаемого вами в библиотеку C++Builder
(см. разделы 5.1.2.2 и 7.3). Эта пиктограмма также должна быть создана не в виде
отдельного файла, а как элемент ресурса компонента.

Работа с файлом ресурса приложения в Редакторе Изображений обычно начи-
нается командой File | Open, открывающей файл ресурсов приложения .res, в кото-
ром вы хотите что-то изменить. Перед вами открывается окно, содержащее струк-
туру файла в виде дерева (рис. 5.6 а). Сначала в нем может быть только один
узел — Icon, содержащий вершину MAINICON, соответствующую стандартной пик-
тограмме приложения. Добавить новые узлы вы можете с помощью команды Reso-
urce New (ее вы можете найти и во всплывающем меню Редактора Изображений),
выполняя которую вам предоставляется возможность выбрать один из типов эле-
ментов: Bitmap, Cursor или Icon. Пусть, например, вы хотите использовать в своем
приложении нестандартный курсор в виде человечка с указкой. Вы выполняете
Resource New | Cursor и в дереве структуры файла ресурсов приложения появляет-
ся новая вершина. Вы должны задать ей то имя, которое в дальнейшем будете ис-
пользовать в приложении при регистрации курсора функцией LoadCursor. Затем
вы щелкаете на созданной вершине и вам открывается заготовка изображения
курсора, в которой вы рисуете нужную картинку. После этого надо вернуться в
окно структуры файла ресурса и выполнить команду File Save.

Несколько иначе, но подобным же образом создаются файлы ресурсов компо-
нентов. Эта процедура иллюстрируется рисунком 5.6 б. Начинается работа с
команды File | New Component Resource File (.dcr). Затем, если вы хотите создать
пиктограмму для регистрации вашего нового компонента в библиотеке, вы дол-
жны выполнить команду Resource | New Bitmap и в открывшемся диалоговом окне
задать размер картинки — 24 на 24. Только такой размер воспримется при регист-
рации вашего компонента в библиотеке.

Затем вы должны назвать соответствующую вершину в дереве структуры фай-
ла ресурсов тем же именем, которое имеет вводимый вами класс компонента. В
противном случае C++Builder не воспримет это изображение как пиктограмму ва-
шего компонента. И последнее требование. Ваш файл .dcr вы должна сохранить с
именем, совпадающим с именем файла модуля, в котором вы создаете компонент,
и в том же самом каталоге, в котором хранится этот файл модуля. Например,
рис. 5.6 б подразумевает, что вы создаете компонент, описанный в разделе 7.3.
Класс вашего компонента назван TEditLetNum, а имя модуля, в котором вы создаете
свой компонент, — EditLetNum.

Только при соблюдении всех перечисленных выше условий ваше изображение
будет воспринято C++Builder как пиктограмма компонента и она будет использо-
вана при установке компонента на странице библиотеки.

А само создание изображения ничем не отличается от создания пиктограммы
шаблона компонента, подробно описанного в разделе 5.1.2.2.

5.1.3 Канва — холст для рисования

5.1.3.1 Канва и пиксели

Многие компоненты в C++Builder имеют свойство Canvas (канва, холст),
представляющее собой область компонента, на которой можно рисовать или ото-
бражать готовые изображения. Это свойство имеют формы, графические компо-
ненты Image, PaintBox, Bitmap и многие другие. Канва содержит свойства и мето-
ды, существенно упрощающие графику C++Builder. Все сложные взаимодействия
с системой спрятаны для пользователя, так что рисовать в C++Builder может чело-
век, совершенно не искушенный в машинной графике.

Каждая точка канвы имеет координаты Х и Y. Система координат канвы, как
и везде в C++Builder, имеет началом левый верхний угол канвы. Координата Х