Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 63909
Модуль Forms 63636
ТЕХНОЛОГИИ ДОСТ... 60481
Пример работы с... 59876
Имитационное мо... 55958
Реклама
Сейчас на сайте
Гостей: 10
На сайте нет зарегистрированных пользователей

Пользователей: 13,079
новичок: Openair
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование процесса поступления заявок в систему, состоящую из трёх Э...
Меры близости на векторах в Delphi + Блок схемы
Программа тестирования и обучающая программа по математике на Turbo Pasc...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Коллекция Charts, размещение диаграммы и исходных данных



Все диаграммы рабочей книги объединены в коллекцию Charts, свойства и
методы которой позволяют добавлять новые диаграммы, хранить, удалять и
обеспечивать доступ к любой диаграмме коллекции. Коллекция Charts име-
ет такие же свойства, как любая другая коллекция объектов Excel, но есть и
некоторые отличия, обусловленные свойствами диаграммы, т. к. диаграмма
может находиться на листе вместе с другими данными или занимать отдель-
ный лист. Поэтому диаграмма и лист рабочей книги, а также коллекции,
которым они принадлежат, могут иметь общие свойства и методы, которые
придется учитывать при программировании приложений(1).
Для того чтобы создать новую диаграмму, а затем манипулировать общим
списком диаграмм и получать доступ к отдельной диаграмме, достаточно
воспользоваться одним свойством и двумя методами коллекции Charts.
Свойство Count имеет тип Integer, его значение равно количеству диаграмм
в рабочей книге. Метод Add создает новую диаграмму и возвращает ссылку
на нее. Метод Item() возвращает ссылку на созданную ранее диаграмму,
принадлежащую коллекции Charts. Аргументом метода Item() является по-
рядковый номер (индекс) или имя диаграммы в коллекции. Во втором слу-
чае аргументом метода Item является строка, содержащая имя диаграммы.
Индексом может быть целое число со значением в диапазоне от 1
до Charts.Count.
Следующие две процедуры демонстрируют, как можно создать диаграмму,
получив ссылку на нее, или получить доступ к существующей диаграмме
с помощью индекса.
Создание диаграммы и получение доступа к существующей диаграмме
procedure TForm1.Button1Click(Sender: TObject);
begin
Chart:=E.Charts.Add;
Chart.ChartType:=xl3DColumn;
Chart.SetSourceData(Source:=E.ActiveWorkbook.Sheets.Item[2].
Range['Al:F5'],PlotBy:=xlColumns);
end;
procedure TForml.ButtonlClick(Sender: TObject);
begin
Chart:=E.Charts.Item[1];
end;



Результат выполнения первой процедуры, использующей метод Add, пред-
ставлен на рис. 14.1.

РИС. 14.1. Диаграмма, созданная на отдельном листе
Первая процедура состоит из трех операторов: первый создает диаграмму и
возвращает ссылку нее, два других, используя полученную ссылку, опреде-
ляют область значений для построения диаграммы и ее тип. Без этих двух
операторов мы получили бы только пустую область диаграммы. Тип диа-
граммы определяется значением свойства ChartType объекта Chart, имею-
щим целый тип и выбираемым из нескольких десятков констант. Метод
SetSourceData определяет диапазон данных (область ячеек) листа рабочей
книги, по которым будет строиться диаграмма. Первый аргумент этого ме-
тода определяет адрес области, второй — порядок использования ячеек в
заданной области.
Важной характеристикой диаграммы также является место, где расположена
сама диаграмма, определяемое с помощью метода Location объекта Chart.
У этого метода два аргумента. Первый аргумент (типа Integer) определяет,
будет диаграмма находиться на отдельном листе или на обычном листе с
данными. Если выбран второй вариант, то второй аргумент метода Location
определяет имя листа, на котором будет располагаться диаграмма.
В нашем случае диаграмма создана на отдельном листе. С помощью сле-
дующих процедур переместим ее на первый лист рабочей книги — туда, где
располагаются данные для построения диаграммы, затем переместим обрат-
но на отдельный лист (полный пример исходного текста приложения пред-
ставлен на сопроводительном компакт-диске книги).
Перемещение диаграммы на лист с данными
const
xlLocationAsNewSheet=l;
xlLocationAsObject=2;
procedure TForml.Button2Click(Sender: TObject);
begin
Chart.Location(Where:=xlLocationAsObject, Ыате:='Лист1');
Chart:=E.ActiveChart;
end;
procedure TForml.Button3Click(Sender: TObject);
begin
Chart.Location(Where:=xlLocationAsNewSheet);
Chart:=E.ActiveChart;
end;



Обратите внимание на то, что после вызова метода Location необходимо
снова получать ссылку на объект ActiveChart, т. к. переменная Chart после
переноса диаграммы на новый лист уже не содержит ссылку на диаграмму.
В имеющемся на сопроводительном компакт-диске книги примере прило-
жения эти процедуры будут правильно работать, если создана только одна
диаграмма. Если их будет больше, то вам придется изменить исходный
текст приложения.
На рис. 14.2 представлена диаграмма, которая была перенесена с отдельного
листа. Обратите внимание на область ячеек в верхнем левом углу листа —
она определена как область исходных данных.

Рис. 14.2. Диаграмма, перемещенная на лист с данными
Заполним первую строку области исходных данных диаграммы (т. е. область
подписей делений) определенными значениями, а ячейки, определяющие
значения точек данных, — случайными числами. Для этого можно исполь-
зовать следующие процедуры.
Заполнение области исходных данных для диаграммы
function SetValueRange(sheet:variant; range:string;
value__:variant) .-boolean;
begin
SetValueRange:=True;
try
E.ActiveWorkbook.Sheets.Item[sheet].Range[range]:=value_;
except
SetValueRange:=False ;
end;
end;
procedure TForml.Button4Click(Sender: TObject);
var a_:integer;
begin
randomize;
SetValueRange('Лист1','A1','AAAA');
SetValueRangeI('Лист1',' 'B1','BBBB');
SetValueRangeI('ЛИСТ1','C1','CCCC');
SetValueRange('Лист1', 'D1','AAAA1 );
SetValueRange('Лист1','E1','BBBB');
SetValueRange('Лист!','F1','CCCC');
for a__:=2 to 5 do begin
SetValueRange('Лист1','A'+inttostr(a_),a_-l);
SetValueRange('Лист1','В'+inttostr(a_),random(1000));
SetValueRange('Лист1','C'+inttostr(a_),random(l000));
SetValueRange('Лист!','D'+inttostr(a_),random(l000));
SetValueRangeCJlMcrl', 'E'+inttostr (a_), random (1000)) ;
SetValueRange('Лист1',"F'+inttostr(a_),random(1000));
end;
end;



Результат выполнения данных процедур представлен на рис. 14.3.

Рис. 14.3. Заполняем диаграмму исходными данными


1 Диаграмма может располагаться на отдельном листе, поэтому доступ к ней может быть таким
же, как к листу. Например: если диаграмма расположена на первом листе, то ее можно уда-
лить как лист (оператор Application.ActiveWorkbook.Sheets.Item(l).Delete;) или как диаграмму
(оператор Application.ActiveWorkbook.Charts.Item(l).Delete;). Результат будет одним и тем же.
Опубликовал Kest September 30 2009 18:32:13 · 2 Комментариев · 7463 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Dron55554 April 19 2010 16:17:21
smiley Ни черта ниче не понятноsmileysmileysmiley
я May 27 2011 01:28:32
smileyАвтор книжку написал для себяsmiley
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Allsubmitter 4.7 ...
3D Октаэдр
Технология .Net в VB
Delphi 2005. Разр...
Win-Prolog 3.618
BDEPack
Abbrevia
Самоучитель C++
Программирование ...
Песочные часы
Delphi 2005 для W...
OnlineIP
Dbgridpack
Strawberry Prolog...
База для Allsubmi...
Заставка. Изображ...
Delphi 7 Enterpri...
Adapter (пример D...
Socoban
Swat [Исходник на...

Топ загрузок
Приложение Клие... 100449
Delphi 7 Enterp... 85821
Converter AMR<-... 20067
GPSS World Stud... 12518
Borland C++Buil... 11576
Borland Delphi ... 8504
Turbo Pascal fo... 7023
Visual Studio 2... 4989
Калькулятор [Ис... 4739
FreeSMS v1.3.1 3536
Случайные статьи
Передача данных в ...
Создание записей э...
Удаление элементов...
Умеете ли вы делат...
Оператор while
doc и \chapt07\Gro...
ВВЕДЕНИЕ В РЕКУРСИЮ
Сценарий главы: ко...
Фотограф Киев
Кроссбраузерная по...
Специальные встр...
• Enable Content R...
Краткая характерис...
Идеалы программиро...
Создание и использ...
Основное -- адеква...
Форматы таблиц
О стандартах прогр...
НАЗНАЧЕНИЕ РЕФЛЕКС...
Результаты
Документы Word
Мир
В словаре, который...
Чтение структуры P...
7.3. Ханойские башни
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?