Навигация
Главная
Поиск
Форум
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
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Светодиодные уличные прожекторы www.yarilo-nsk.ru.
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

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

Моделирование процесса передачи данных по магистрали с основным и резерв...
База данных - рабочее место кассира на Delphi + бд Access
Моделирование станции технического обслуживания на GPSS + Отчет

Коллекция 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 14:32:13 · 2 Комментариев · 8829 Прочтений · Для печати

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


Комментарии
Dron55554 April 19 2010 12:17:21
smiley Ни черта ниче не понятноsmileysmileysmiley
я May 26 2011 21: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...
Шаблон для новост...

Случайные загрузки
Мониторинг сервер...
Zoom [Исходник на...
Delphi 6. Учебный...
PDJ Scrollers
Анекдоты с ostrie.ru
Java в примерах -...
AID антивирус
Обучение Borland ...
Анимированное поя...
Halcyon
Pass [Исходник на...
Приемы программир...
Delphi 2005 Секре...
Книга по Delphi (...
Трассировка прово...
Учебник по создан...
C# Учебный курс
DelTrayIcon [Исхо...
Bitmap [для кнопок]
PDF

Топ загрузок
Приложение Клие... 100791
Delphi 7 Enterp... 97987
Converter AMR<-... 20293
GPSS World Stud... 17047
Borland C++Buil... 14217
Borland Delphi ... 10359
Turbo Pascal fo... 7387
Калькулятор [Ис... 6070
Visual Studio 2... 5228
Microsoft SQL S... 3673
Случайные статьи
Какими способами м...
Процедуры ShowMess...
Подготовка к хакингу
Коммерческие и тех...
Чтобы гарантироват...
Просмотр в обоих н...
Создание базы данн...
Содержание
Доставка готовой е...
Categories. Нажмит...
Подкастинг: размещ...
Windows XP Profess...
по адресу http://www
Анализ файловой си...
Задание: обзор чле...
Определение полимо...
Недостатки рекурси...
Обзор XML-схем
Создание процесса ...
Работа с API-интер...
4.5. РЕШЕНИЕ: СПЕЦ...
• Открыть в службе...
Мода и покер: самы...
Язык С: перестановки
Клонирование устро...
Статистика



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


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