Построение графических изображений
Использование готовых графических файлов
Компонент Image и некоторые его свойства
Нередко возникает потребность украсить свое приложение какими-то картинками. Это может быть графическая заставка, являющаяся логотипом вашего приложения. Или это могут быть фотографии при разработке приложения, работающего с базой данных сотрудников некоего учреждения. В первом случае вам потребуется компонент Image, расположенный на странице Additional библиотеки компонентов, во втором — его аналог DBImage, связанный с данными и расположенный на странице Data Controls.
Начнем знакомство с этими компонентами. Откройте новое приложение и перенесите на форму компонент Image. Его свойство, которое может содержать картинку — Picture. Нажмите на кнопку с многоточием около этого свойства или просто сделайте двойной щелчок на Image, и перед вами откроется окно Picture Editor (рис. 5.1), позволяющее загрузить в свойство Picture какой-нибудь графический файл (кнопка Load), а также сохранить открытый файл под новым именем или в новом каталоге. Щелкните на Load, чтобы загрузить графический файл. Перед вами откроется окно Load Picture, представленное на рис. 2. По мере перемещения курсора в списке по графическим файлам в правом окне отображаются содержащиеся в них изображения. Вы можете найти графические файлы в каталоге images. Он обычно расположен в каталоге …\program files\Common Files\Borland Shared.
На рис.1 и 2 изображена загрузка файла …\lmages\Splash\16Color\earth.bmp. В окне загрузки графического файла (рис.2) вы можете не только просмотреть изображение, хранящееся в выбираемом файле, но и увидеть размер изображения — цифры в скобках справа вверху.
После загрузки файла щелкните на ОК и в вашем компоненте Image отобразится выбранная вами картинка.
Когда вы в процессе проектирования загрузили картинку из файла в компонент Image, он не просто отображает ее, но и сохраняет в приложении. Это дает вам возможность поставлять ваше приложение без отдельного графического файла. Впрочем, как мы увидим позднее, в Image можно загружать и внешние графические файлы в процессе выполнения приложения.
Вернемся к рассмотрению свойств компонента Image.
Если установить свойство AutoSize в true, то размер компонента Image будет автоматически подгоняться под размер помещенной в него картинки. Если же свойство AutoSize установлено в false, то изображение может не поместиться в компонент или, наоборот, площадь компонента может оказаться много больше площади изображения.
Другое свойство — Stretch позволяет подгонять не компонент под размер рисунка, а рисунок под размер компонента. Установите AutoSize в false, растяните или сожмите размер компонента Image и установите Stretch в true. Вы увидите, что рисунок займет всю площадь компонента, но поскольку вряд ли реально установить размеры Image точно пропорциональными размеру рисунка, то изображение исказится. Устанавливать Stretch в true может иметь смысл только для каких-то узоров, но не для картинок. Свойство Stretch не действует на изображения пиктограмм, которые не могут изменять своих размеров.
Свойство — Center, установленное в true, центрирует изображение на площади Image, если размер компонента больше размера рисунка.
Рассмотрим еще одно свойство — Transparent (прозрачность). Если Transparent равно true, то изображение в Image становится прозрачным. Это можно использовать для наложения изображений друг на друга. Поместите на форму второй компонент Image и загрузите в него другую картинку. Только постарайтесь взять какую-нибудь мало заполненную, контурную картинку. Можете, например, взять картинку из числа помещаемых обычно на кнопки, например, стрелку (файл …\program files\common files\borland shared\images\buttons\arrow1r.bmp). Передвиньте ваши Image так, чтобы они перекрывали друг друга, и в верхнем компоненте установите Transparent равным true. Вы увидите, что верхняя картинка перестала заслонять нижнюю. Одно из возможных применений этого свойства — наложение на картинку надписей, выполненных в виде битовой матрицы. Эти надписи можно сделать с помощью встроенной в C++Builder программы Image Editor, которая будет рассмотрена позднее.
Учтите, что свойство Transparent действует только на битовые матрицы (о типах графических файлов.
