Шаг 2.
Компоненты библиотеки RX.
Вкладка RX Tools. Компонент TPicClip

    На этом шаге мы рассмотрим компонент TPicClip.

    Компонент TPicClip представляет собой аналог PICCLIP.VBX, поставляемого вместе с Visual Basic. TPicClip позволяет получить доступ к прямоугольному элементу изображения, предварительно разделенного на "ячейки", и затем использовать этот элемент при присвоении графическим свойствам других компонент или для рисования.

    Разделение изображения на прямоугольные "ячейки" достигается за счет присвоения значений свойствам Cols (число колонок) и Rows (число строк). После этого любой элемент изображения доступен как объект класса TBitmap через индексированное свойство GraphicCell[Index: Integer].

    Отрисовка ячейки изображения может быть осуществлена методом Draw. При этом, если свойство Masked = True (по умолчанию), то цвет, заданный свойством MaskColor будет заменяться на цвет фона ("прозрачная" отрисовка изображения). Вы можете использовать метод Assign для занесения изображения в компонент TPicClip, используя в качестве параметра Source объекты классов TPicture и TGraphic.

    Также вы можете использовать TPicClip в качестве параметра Source метода Assign компонент классов TPicture, TGraphic и (в 32-битной версии) TImageList.

Таблица 1. Свойства и методы компонента TPicClip
Свойство Описание
property Cols: Integer; Свойство задает число колонок в сетке, определяющей разбивку графического изображения на условные "ячейки", доступ к которым осуществляется с помощью индексированного свойства GraphicCell.
property Rows: Integer; Свойство задает число строк в сетке, определяющей разбивку графического изображения на условные "ячейки", доступ к которым осуществляется с помощью индексированного свойства GraphicCell.
property GraphicCell[Index: Integer]: TBitmap; Свойство "только-для-чтения", позволяет получить доступ к любой "ячейке" изображения по номеру этой ячейки. Нумерация ячеек непрерывная от 0 до (Cols * Rows) - 1, слева направо и сверху вниз.
property Masked: Boolean; Если свойство Masked = True (по умолчанию), то цвет, заданный свойством MaskColor будет заменяться на цвет фона ("прозрачная" отрисовка изображения) при рисовании ячейки изображения методом Draw.
property MaskColor: TColor; Цвет, заменяемый цветом фона, в случае когда свойство Masked = True.
procedure Draw(Canvas: TCanvas; X, Y, Index: Integer); Метод служит для отрисовки ячейки изображения, соответствующей индексу Index, в устройстве Canvas. Координаты X, Y задают точку для верхнего левого угла изображения.

    Рассмотрим пример использования компонента TPicClip. Поместим на форму компоненты: TPicClip, TImage и девять кнопок TButton (рис. 1).


Рис.1. Форма с размещенными компонентами

    Для компонента TPicClip, с помощью свойства Picture, загружаем изображение. Изменяем значения свойств Cols = 3 и Rows = 3. Тем самым разбивая наше изображение на девять частей. Для каждой кнопки TButton напишем обработчик события OnClick:

procedure TForm1.Button1Click(Sender: TObject);
begin
     Form1.PicClip1.Draw(Image1.Canvas,0,0,0);
     Image1.Invalidate;
end;

    При нажатии на кнопку, происходит отрисовка части нашего изображения, соответствующей индексу, указанному четвертым параметром в методе Draw, в позицию X,Y (второй и третий параметры) на компоненте TImage (первый параметр). После чего происходит перерисовка содержимого Image1 методом Invalidate.

    Запустим наше приложение и нажмем на кнопки: 1, 3, 5, 7, 9 (рис. 2).


Рис.2. Работа приложения

Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компоненты TFormStorage и TFormPlacement.




Предыдущий шаг Содержание Следующий шаг