На этом шаге мы рассмотрим способ заливки ячейки.
Заливка ячейки определяется комбинацией следующих составляющих - цвета, узора и цвета узора, заполняющего пространство ячейки. Программный доступ к параметрам заливки обеспечивает свойство Interior объекта Range, где Range - ссылка на ячейку или область. Свойство Interior представляет собой объект, свойства которого связаны с визуальными свойствами внутреннего пространства ячейки.
Цвет заливки определяется свойством Color объекта Interior и задается как комбинация трех цветов:
Color:=RGB(R,G,В);
где R, G, В - числовые значения, соответствующие красному, зеленому и синему цветам. Цвет заливки можно также задать как выбранный на цветовой палитре - для этого используется свойство ColorIndex объекта Interior.
Выберем цвет заливки, записав в свойство Color значение цветовой комбинации. Для этого используем следующую процедуру.
procedure TForm1.Button4Click(Sender: TObject); //Задание цвета заливки ячейки begin if ColorDialog1.Execute then Range.Interior.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; Button4: 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); procedure Button4Click(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; procedure TForm1.Button4Click(Sender: TObject); //Задание цвета заливки ячейки begin if ColorDialog1.Execute then Range.Interior.Color:=ColorDialog1.Color; end; end.
На следующем шаге мы продолжим изучение этого вопроса.