Доступ к свойствам легенды диаграммы осуществляется посредством объек-
та Legend, являющегося свойством диаграммы Chart. Для открытия доступа
к объекту Legend необходимо присвоить свойству HasLegend объекта Chart
значение True, после чего легенда диаграммы отобразится в области диа-
граммы и будет доступна для изменений.
Легенда представляет собой прямоугольную область, для которой можно
изменить визуальные свойства заливки и линии границы. Оператор
Legend:=Chart.Legend;
возвращает в переменную Legend:variant ссылку на объект "легенда". После
этого можно непосредственно обращаться к этой легенде. Доступ к линии
границы легенды обеспечивает свойство Border, к заливке — свойство
Interior или Fill. Используя эти свойства, изменим внешний вид легенды.
Настройка заливки и линии границы легенды
const msoPatternHorizontalBrick=35;
var Legend:variant;
procedure TForm.WeightChange(Sender: TObject);
begin
Legend.Border.Weight:=Weight.Value;
end;
procedure TForm.PatternChange(Sender: TObject);
begin
Legend.Fill.Patterned!Pattern:=msoPatternHorizontalBrick);
end;
procedure TForm.ForeColor3Change(Sender: TObject);
begin
Legend.Fill.ForeColor.SchemeColor:=ForeColor3.Value;
end;
procedure TForm.BackColor3Change(Sender: TObject);
begin
Fill.BackColor.SchemeColor:=BackColor3.Value;
end;
Результат использования представленных процедур показан на рис. 14.11.
Рис. 14.11. Изменены заливка и линия границы легенды
Легенда включает в себя дополнительные объекты, объединенные в коллек-
цию LegendEntries. Это элементы легенды, их количество совпадает с коли-
чеством рядов диаграммы. У элемента легенды есть свойство Font для на-
стройки шрифта текста и единственный дополнительный объект — ключ
легенды. Ключ имеет свойства линии границы и заливки.
Доступ к элементам легенды осуществляется посредством коллекции
LegendEntries с помощью индекса элемента (целого числа из диапазона от 1
до LegendEntries.Count, где Count — количество элементов легенды).
Настроим свойства легенды, выполнив следующие процедуры.
Изменение свойств элемента легенды
procedure TForm1.FormShow(Sender: TObject);
var a_:integer;
begin
// Загружаем список элементов легенды в ListBox
ListBox1.Items .Clear;
for a_:=1 to Legend.LegendEntries.Count do begin
ListBoxl.Items.Add(inttostr(a_)) ;
end;
end;
procedure TForml.ButtonlClick(Sender: TObject);
begin
// Получаем ссылку на элемент легенды
1:=2;
LegendEntry:=Legend.LegendEntries.item[i];
// Получаем ссылку на ключ легенды
LegendKey:= LegendEntry.LegendKey;
// Изменяем толщину линии.
LegendKey.Border.Weight:=4;
// Изменяем цвет заливки
LegendKey.Interior.Color:=RGB{200, 50, 0) ;
// Получаем доступ к шрифту надписи и изменяем его.
LegendEntry.Font.Size:=16;
end;
Результат выполнения этих процедур представлен на рис. 14.12 и 14.13.
Примечание
При программировании объектов, изменяющих визуальные свойства ключа ле-
генды, необходимо учитывать тот факт, что это приводит к соответствующим
изменениям свойств рядов диаграммы.
Рис. 14.12. Изменена линия и заливка ключа легенды
Рис. 14.13. Изменен шрифт текста элемента легенды |