Навигация
Главная
Поиск
Форум
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
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

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

Компьютерный магазин на Turbo Pascal (База данных) + Пояснительная записка
База данных студентов на Turbo Pascal (Списки) + Пояснительная записка
Моделирование работы класса персональных компьютеров на 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 Комментариев · 8402 Прочтений · Для печати

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


Комментарии
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...
Шаблон для новост...

Случайные загрузки
Borland Delphi 6....
Blib [Исходник на...
IpEditAdress
Cooltray
3D Тетрис [Исходн...
ИНТЕРНЕТ ПРОГРАММ...
PHP 5 в подлинник...
База для Allsubmi...
Delphi 2005 Секре...
Язык программиров...
Counter [Исходник...
Алгоритм трассиро...
Медиа комбайн
Программирование ...
ShadelLabel
Цветной Grid
Популярные загрузки
Факториал [Исходн...
CS:Source - монит...
Delphi 6. Учебный...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97832
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Блоки организации ...
Разреженные массивы
Получение ресурсов...
— конфигурация 582...
Контейнер из библи...
Дружественные клас...
Технические характ...
количество элемент...
Эмуляция директивы...
Блок TABULATE
Пропускная способн...
Если протокол не в...
Системы контроля сети
Основные принципы ...
Друзья на высоких ...
Функция GlobalMemo...
Выражения в списке...
Структура сообщени...
Что такое SEO, SEA...
Как избавиться от ...
Библиотека Matrix
Природа нулевой эн...
Циклические коды и...
Генератор имен (ге...
с Windows 2000
Статистика



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


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