На этом шаге мы рассмотрим компонент 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.
Свойство | Описание |
---|---|
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.