Границы ячейки

   
На этом шаге мы рассмотрим настройку границ ячеек.

   
Перейдем к анализу графического оформления ячейки. Ячейка представляет собой прямоугольную область. Эта область,
кроме отображаемого в ней значения, имеет такие свойства, как заливка и граница. Как заливка ячейки, так и граница
имеют соответствующие свойства (цвет, толщину, тип, узор, цвет узора). Рассмотрим эти свойства подробней.
Граница ячейки представляет собой линии, ограничивающие ее с четырех сторон. Линии объединены в коллекцию
Borders, доступ к любой из них осуществляется через элементы этой коллекции. Каждый элемент коллекции
предоставляет доступ к отрезку прямой, прилегающему к той или другой стороне ячейки. Диагонали ячейки тоже
являются элементами этой коллекции. Каждый элемент коллекции Borders является объектом и имеет свои
индивидуальные свойства, что позволяет задать тип линии и цвет отдельно для каждой линии границы ячейки.
Рассмотрим процедуры, позволяющие обеспечить доступ к любой линии границы (или ко всей границе сразу)
выбранной ячейки, установить ее толщину, тип линии и цвет.

procedure TForm1.ComboBox1Change(Sender: TObject);
//Выбор границы
begin
  if CheckBox1.Checked Then
    Border:=Range.Borders.Item[ComboBox1.ItemIndex+5];
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
//Устанавливаем толщину линии границы ячейки
begin
  Border.Weight:=SpinEdit1.Value;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
//Устанавливаем тип линии границы ячейки
begin
  Case ComboBox2.ItemIndex Of
    0: Border.LineStyle:=1;     //xlContinuous
    1: Border.LineStyle:=-4115; //xlDash
    2: Border.LineStyle:=4;     //xlDashDot
    3: Border.LineStyle:=5;     //xlDashDotDot
    4: Border.LineStyle:=-4118; //xlDot
    5: Border.LineStyle:=-4119; //xlDouble
    6: Border.LineStyle:=-4142; //xlLineStyleNone
    7: Border.LineStyle:=13;    //xlSlantDashDot
  End;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Устанавливаем цвет линии границы ячейки
begin
  if ColorDialog1.Execute then
     Border.Color:=ColorDialog1.Color;
end;

   
Результат настройки линий границ ячеек с использованием приведенных процедур представлен на рисунке 1.


Рис.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;
    Label1: TLabel;
    Edit1: TEdit;
    CheckBox1: TCheckBox;
    ComboBox1: TComboBox;
    Label2: TLabel;
    SpinEdit1: TSpinEdit;
    Label3: TLabel;
    ComboBox2: TComboBox;
    ColorDialog1: TColorDialog;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E:variant;
  Range:variant;
  Border: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.Edit1Exit(Sender: TObject);
//Определение области
begin
 Range:=E.ActiveSheet.Range[Edit1.Text];
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
//Выбор границы
begin
  if CheckBox1.Checked Then
    Border:=Range.Borders.Item[ComboBox1.ItemIndex+5];
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
//Устанавливаем толщину линии границы ячейки
begin
  Border.Weight:=SpinEdit1.Value;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
//Устанавливаем тип линии границы ячейки
begin
  Case ComboBox2.ItemIndex Of
    0: Border.LineStyle:=1;     //xlContinuous
    1: Border.LineStyle:=-4115; //xlDash
    2: Border.LineStyle:=4;     //xlDashDot
    3: Border.LineStyle:=5;     //xlDashDotDot
    4: Border.LineStyle:=-4118; //xlDot
    5: Border.LineStyle:=-4119; //xlDouble
    6: Border.LineStyle:=-4142; //xlLineStyleNone
    7: Border.LineStyle:=13;    //xlSlantDashDot
  End;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Устанавливаем цвет линии границы ячейки
begin
  if ColorDialog1.Execute then
     Border.Color:=ColorDialog1.Color;
end;

end.

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

   
На следующем шаге мы рассмотрим заливку ячеек.



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

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