Навигация
Главная
Поиск
Форум
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
Содержание сайт... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Invision Power ... 65308
Организация зап... 63966
Модуль Forms 60864
Создание отчето... 60740
ТЕХНОЛОГИИ ДОСТ... 57065
Создание потоко... 56443
Пример работы с... 54322
Имитационное мо... 52516
Реклама
Чем отличается кабель http://aviled.ru/.
Сейчас на сайте
Гостей: 10
На сайте нет зарегистрированных пользователей

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

Моделирование работы ЭВМ на GPSS + Пояснительная записка
Моделирование процесса обеспечивающего надежность функционирования АСУ Т...
Моделирование регулировочного участка цеха на GPSS + Пояснительная записка

Реклама



Подписывайся на 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 17:32:13 · 2 Комментариев · 7177 Прочтений · Для печати

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


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

Случайные загрузки
около 291 статьи ...
Java в примерах -...
Синтаксический ан...
Globus VCL Extent...
Atb
Игра "Астероиды" ...
Pro-Download Sys...
Определние размер...
Игра Car [Исходни...
FreeSMS v1.3.1
Создание Web-сайт...
Разработка распре...
AVIwriter
Размещение элемен...
TmxOutlookBarPro
Модифицированная ...
MiniTetris [Исход...
Работа с матрицами
Программирование ...
Песочные часы

Топ загрузок
Приложение Клие... 100376
Delphi 7 Enterp... 83122
Converter AMR<-... 20046
Borland C++Buil... 11183
GPSS World Stud... 10948
Borland Delphi ... 8130
Turbo Pascal fo... 6973
Visual Studio 2... 4963
Калькулятор [Ис... 4373
FreeSMS v1.3.1 3510
Случайные статьи
Редактирование диз...
Редактор плагинов
Определение размер...
Строковые потоки
Инициализация конс...
Компания электронн...
Расшифровка данных...
Создание объекта E...
Когда говорят про ...
Определение версии...
QUEUE (СТАТЬ В ОЧЕ...
История языков про...
Игровой зал всех п...
";" expected
Архивирование оказ...
Как сделать URL по...
Превращение компью...
К головоломке "зеб...
Работа с динамиче...
Способы фильтрации...
Поток с использова...
Функции GetX и Get...
Управление устройс...
Практичность
Режим перевода кад...
Статистика



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


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