http://www.mebel-luchshe.net/ стол обеденный париж 1 кухни недорого москва.

Объекты класса TBrush (кисти) служат для заполнения внутреннего пространства замкнутых фигур.

Ниже представлены свойства класса TBrush.

property Bitmap: TBitmap;
Содержит растровое изображение, которое будет использоваться кистью для заполнения. Если это свойство определено, свойства Color и Style игнорируются, property Color: TColor;
Цвет кисти, property Style: TBrushStyle;

Стиль кисти (рис. 4.4).

4.4.3. Класс TBrush

Рис- 4.4. Стили кисти

Замечу, что свойство Bitmap содержит ссылку на объект класса TBitmap. Перед обращением к свойству этот объект нужно создать. Свойство Color определяет цвет рисунка (узора) кисти, но не цвет фона: цвет фона выбирается автоматически так, чтобы линии узора контрастировали с фоном. В программе $(S0URCE)\Ch04\TBrush\BrushDemo.dpr иллюстрируются стандартные стили кисти (верхняя часть рис. 4.4) и использование свойства Bitmap (нижняя часть).

В листинге 4.2 представлен главный модуль программы.

Листинг 4.2. Модуль BrushU.pas unit BrushU;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ExtDlgs;
type TfmExample = class(TForm) Panell: TPanel;
bbRun: TBitBtn;
bbClose: TBitBtn;
pbOut: TPaintBox;
pbBit: TPaintBox;
Splitterl: TSplitter;
cbBrushColor: TColorBox;
BitBtnl: TBitBtn;
OPDlg: TOpenPictureDialog;
Label1: TLabel;
procedure bbRunClick(Sender: TObject);

procedure BitBtniciick(Sender: TObject); private { Private declarations } public

{ Public declarations } end;

var fmExample: TfmExample; implementation

{$R *.dfm}
procedure TfmExample.bbRunClick(Sender: TObject);
// Воспроизводит стили кисти с цветом, заданным списком cbBrushCilor
const <ч продолжение &
Листинг 4.2 (продолжение)
Names: array [0..7] of String[12] = ('bsSolid',1bsClear', 1bsHorizontal1,'bsVertical',1bsFDiagonal1, ■bsBDiagonal', 'bcCross1,'bsDiagCross');

var к, X, Y, H, W: Integer; R: TRect; begin X := 10; // Текущая левая координата

Y := 10; // Текущая верхняя координата области отрисовки

with pbOut.Canvas do
begin
// Вначале очищаем весь рисунок: Brush.Color := clWhite;
Brush.Style := bsSolid;
FillRect(ClipRect) ;

// Вычисляем ширину (W) и высоту (И) изображения:

W := ClipRect.Right div 2-90;
H := ClipRect.Bottom div 4-10;

// Цикл вывода 8 стилей:

for к := 0 to 7 do begin if k=4 then begin // Переход к правой колонке

X := W+90;
Y := 5 end;
Brush.Style := TBrushStyle(k);
if kol then
Brush.Color := cbBrushColor.Colors[cbBrushColor.Itemlndex]; R.Top := Y;
inc(Y, H);
R.Bottom := R.Top+H;
R.Left := X+70; R.Right := R.Left+W;
FillRect(R);
// Выводим название стиля: Brush.Color := clWhite;
TextOut(Xf R.Top+5, Names[k]);
R.Top := R.Top+H;
end end end;

procedure TfmExample.BitBtnlClick(Sender: TObject); // Выбирает фоновый узор

begin with pbBit.Canvas, Brush do begin Bitmap : = TBitmap.Create; // Создаем объект-изображение

try

if OPDlg.Execute then Bitmap.LoadFromFile(OPDlg.FileName); // Загружаем его FillRect(ClipRect); // Закрашиваем всю область

finally

Bitmap.Free // Освобождаем объект

end end end;

Обратите внимание: при назначении кисти нового стиля автоматически очищается свойство Color, которое следует установить заново, если только стиль - не bsClear. Перед загрузкой объекта Bitmap его нужно создать, а после использования - уничтожить. Поскольку отрисовка слишком крупных изображений может вызвать исключение, этот фрагмент текста защищен блоком try...f inally. Перед выводом текста прямоугольник вывода заливается цветом кисти. Если убрать следующий оператор перед обращением к методу TextOut канвы, текст будет выведен на фоне, определяемым выбором в списке cbBrushColor:

Brush.Color := clWhite;

Стиль bsClear определяет «пустую» кисть, которая не закрашивает поверхность ни цветом, ни узором.

ПРИМЕЧАНИЕ -

Стандартная форма (объект класса TForm) имеет собственную кисть. Если при создании формы в ее свойство Brush.Style поместить значение bsClear, будет создано «прозрачное» окно, а если, к тому же, объявить окно §ез рамки (BorderStyle = bsNone), оно будет невидимым. Этот прием можно использовать для создания постепенно заполняемых окон в анимационных компонентах.

4.4.2. Класс ТРеп || Оглавление || 4.4.4. Класс TCanvas


Искусство создания компонентов Delphi



Новости за месяц

  • Август
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс