Заливка. Обычная заливка

   
На этом шаге мы рассмотрим задание обычной заливки надписи.

   
Заливка области определяется свойствами объекта Fill, который принадлежит объекту TextBox и
является его свойством. Манипулируя объектом Fill, мы можем настроить цвет и стиль заливки, фоновый
рисунок и другие параметры области. Самый простой вариант заливки заключается в выборе цвета фона, который
определяется свойством ForeColor объекта Fill. Для более сложного варианта заливки необходимо
использование других свойств и методов объекта Fill, часть из которых представлены в таблице 1.

Таблица 1. Свойства и методы объекта Fill

Свойство или методТипНазначение
ТуреIntegerОпределяет тип заливки - одноцветная или градиентная заливка, узор или рисунок
VisibleBooleanTrue/False - показать/скрыть заливку
TransparencyExtended0..1 - определяет прозрачность заливки
BackColorIntegerОпределяет цвет заливки
SolidМетодСбрасывает пользовательские настройки заливки и задает однотонную заливку
GradientStyleIntegerОпределяет направление градиента и тип штриховки
GradientVariantIntegerВыбор варианта градиента для данного типа штриховки
GradientColorTypeIntegerОпределяет для выбранного типа штриховки градиента один, два цвета, или заготовку
GradientDegreeExtendedОпределяет яркость двух цветов для градиентной заливки
PresetGradientTypeIntegerЗадает одну из доступных заготовок градиентов
OneColorGradientМетодСоздает одноцветную градиентную заливку
TwoColorGradientМетодСоздает двухцветную градиентную заливку
PresetGradientМетодСоздает один из вариантов выбранной заготовки градиентной заливки
PatternIntegerОпределяет тип узора для заливки
ForeColorIntegerОпределяет цвет фона для заливки узором
PatternedМетодЗадает тип узора для заливки
PresetTexturedМетодЗадает для текстурной заливки образец текстуры
UserTexturedМетодЗадает для текстурной заливки рисунок из графического файла
UserPictureМетодЗадает графический файл для заливки в виде рисунка

   
Представленная процедура устанавливает для надписи одноцветную заливку.

procedure TForm1.Button5Click(Sender: TObject);
//Задание цвета заливки
begin
  if ColorDialog1.Execute then
     Fill.ForeColor.RGB:=ColorDialog1.Color;
end;


Рис.1. Задание цвета заливки для надписи

   
Вот полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, Spin;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    ComboBox1: TComboBox;
    ListBox1: TListBox;
    Label3: TLabel;
    Button4: TButton;
    Button5: TButton;
    ColorDialog1: TColorDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E:variant;
  TextBox:variant;
  Fill:Variant;
{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel и отображение окна
begin
  E:=CreateOleObject('Excel.Application');
  E.Visible:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
//Создание рабочей книги
begin
  E.WorkBooks.Add;
end;


procedure TForm1.Button3Click(Sender: TObject);
//Создание надписи
const msoTextOrientationHorizontal=1;
var
  left,top:Extended;
begin
  left:=10;
  top:=11;
  if E.ActiveWorkBook.ActiveSheet.Shapes.Count>0 then
  begin
   left:=E.ActiveWorkBook.ActiveSheet.Shapes.
      item(E.ActiveWorkBook.ActiveSheet.Shapes.count).Left+20;
   top:=E.ActiveWorkBook.ActiveSheet.Shapes.
      item(E.ActiveWorkBook.ActiveSheet.Shapes.count).Top+20;
  end;
  E.ActiveWorkBook.ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,
     left, top, 200, 100);
end;

procedure TForm1.Button4Click(Sender: TObject);
//Заполнить список надписей
var
  a: Integer;
begin
  ListBox1.Items.Clear;
  for a:=1 to E.ActiveWorkBook.ActiveSheet.Shapes.Count do
    ListBox1.Items.Add(E.ActiveWorkBook.ActiveSheet.Shapes.Item(a).Name);
end;

procedure TForm1.ListBox1Click(Sender: TObject);
// При активизации строки объекта ListBoxl, используя имя объекта,
// выделяем его из коллекции Shapes и записываем ссылку на этот объект
//в переменную TextBox.
begin
  TextBox:=E.ActiveWorkBook.ActiveSheet.Shapes.Item(
    ListBox1.Items.Strings[ListBox1.ItemIndex]);
  Fill:=TextBox.Fill; //Ссылка на объект Fill
end;

procedure TForm1.Memo1Change(Sender: TObject);
//Помещение текста в надпись
begin
  TextBox.TextFrame.Characters.Text:=Memo1.Text;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
//Направление (ориентация) текста
begin
 case ComboBox1.ItemIndex of
  0: TextBox.TextFrame.Orientation:=3; //msoTextOrientationDownward
  1: TextBox.TextFrame.Orientation:=1; //msoTextOrientationHorizontal
  2: TextBox.TextFrame.Orientation:=6; //msoTextOrientationHorizontalRotatedFarEast
  3: TextBox.TextFrame.Orientation:=-2;//msoTextOrientationMixed
  4: TextBox.TextFrame.Orientation:=2; //msoTextOrientationUpward
  5: TextBox.TextFrame.Orientation:=5; //msoTextOrientationVertical
  6: TextBox.TextFrame.Orientation:=4; //msoTextOrientationVerticalFarEast
 end;
end;

procedure TForm1.Button5Click(Sender: TObject);
//Задание цвета заливки
begin
  if ColorDialog1.Execute then
     Fill.ForeColor.RGB:=ColorDialog1.Color;
end;

end.

Текст этого приложения можно взять здесь (8,6 Кб).

   
На следующем шаге мы продолжим изучение этого вопроса.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий