Он-лайн самовчитель Delphi
бітові образи
При роботі з графікою зручно використовувати об'єкти типу TBitMap (бітовий образ). Бітовий образ являє собою знаходиться в пам'яті комп'ютера, і, отже, невидиму графічну поверхню, на якій програма може сформувати зображення. Вміст бітового образу (картинка) легко і, що особливо важливо, швидко може бути виведено на поверхню форми або області виводу ілюстрації (image). Тому в програмах бітові образи зазвичай використовуються для зберігання невеликих зображень, наприклад, картинок командних кнопок.
Завантажити в бітовий образ потрібну картинку можна за допомогою методу LoadFromFlie, вказавши в якості параметра ім'я BMP-файлу, в якому знаходиться потрібна ілюстрація.
Наприклад, якщо в програмі оголошена змінна pic типу TBitMap, то після виконання інструкції
бітовий образ pic буде містити зображення літака.
Вивести вміст бітового образу (картинку) на поверхню форми або області виводу ілюстрації можна шляхом застосування методу Draw до відповідного властивості поверхні (canvas). Наприклад, інструкція
виводить картинку бітового образу bm на поверхню компонента image 1 (параметри х і у визначають положення лівого верхнього кута картинки на поверхні компонента).
Якщо перед застосуванням методу Draw властивості Transparent об'єкту TBitMap привласнити значення True, то фрагменти малюнка, пофарбовані кольором, що збігається з кольором лівого нижнього кута картинки, які не будуть виве-
дени - через них буде як би переглядати фон. Якщо в якості "прозорого" потрібно використовувати колір, відмінний від кольору лівої нижньої точки малюнка, то властивості Transparentcoior слід привласнити значення символьної константи, що позначає необхідний колір.
Наступна програма, текст якої наведено в лістингу 10.7, демонструє використання бітових образів для формування зображення з декількох елементів.
Лістинг 10.7. Використання бітових образів
unit aplanes_; interface
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs;
TForml = class (TForm)
procedure FormPaint (Sender: TObject);