- •Программирование на языке
- •Object pascal в среде delphi
- •(Лабораторные работы)
- •Содержание
- •Лабораторная работа 1. Программирование линейных алгоритмов
- •1.1. Базовые элементы языка Object Pascal
- •1.1.1. Алфавит языка
- •1.1.2. Синтаксис языка
- •1.1.3. Основные типы данных
- •1.1.4. Оператор присваивания
- •1.1.5. Целые типы данных
- •1.1.6. Вещественные (действительные) типы данных
- •1.1.8. Cимвольные типы данных
- •1.1.9. Строкоые типы данных
- •1.1.10. Арифметические вычисления
- •1.2. Интегрированная среда разработчика delphi
- •1.3. Структура программ delphi
- •Interface
- •Implementation
- •1.4. Пример написания программы
- •1.4.2. Изменение заголовка формы
- •1.4.6. Написание программы обработки события
- •1.4.7. Написание программы обработки события
- •2.3. Оператор выбора Case
- •2.4. Составной оператор
- •2.5. Некоторые возможности, предоставляемые Delphi для организации разветвлений
- •Interface
- •Implementation
- •2.7. Индивидуальные задания
- •3.1.2. Организация цикла с помощью оператора repeat
- •3.2. Организация вложенных циклов
- •3.3. Организация прерывания цикла
- •3.4. Алгоритмы, использующие рекуррентную последовательность
- •3.5. Пример написания программы
- •Interface
- •Implementation
- •3.6. Индивидуальные задания
- •Лабораторная работа 4. Программирование с использованием массивов
- •4.1. Работа с массивами
- •4.2. Операции над массивами
- •4.3. Примеры часто встречающихся алгоритмов работы с массивами
- •4.4. Компонент tStringGrid для ввода/вывода массивов
- •4.5. Пример написания программы с использованием tStringGrid
- •Interface
- •Implementation
- •4.6. Компонент tEdit для ввода одномерных массивов
- •4.7. Пример написания программы с использованием tEdit
- •4.7. Компонент tMemo для ввода/вывода одномерных массивов
- •4.8. Пример написания программы с использованием tMemo
- •4.9. Индивидуальные задания
- •Лабораторная работа 5. Программирование с использованием строковых данных
- •5.1. Работа со строками
- •5.2. Пример написания программы
- •Лабораторная работа 6. Программирование с использованием подпрограмм и модулей
- •6.1. Описание подпрограмм
- •6.2. Передача данных через формальные параметры
- •6.3. Процедурные типы
- •6.4. Область видимости переменных
- •6.5. Пример написания программы с использованием процедур
- •Interface
- •Implementation
- •6.6. Использование модулей
- •6.7. Пример написания программы с использованием модуля
- •6.7.1. Создание модуля
- •6.7.2. Подключение модуля
- •Implementation
- •6.8. Индивидуальные задания
- •Лабораторная работа 7. Построение графиков
- •7.1. Компонент tChart
- •7.2. Пример написания программы
- •7.4. Индивидуальные задания
- •Лабораторная работа 8. Работа с файлами
- •8.2. Прямая работа с файлами (классический способ)
- •Доступ к файлам
- •Подпрограммы для работы с файлами
- •Запись и чтение типизированных файлов
- •Запись и чтение нетипизированных файлов
- •8.3. Диалоги открытия и сохранения файлов
- •8.4. Пример написания программы
- •8.5. Индивидуальные задания
- •Средства отладки программ в delphi
- •Литература
Лабораторная работа 7. Построение графиков
Цель лабораторной работы: изучить принцип построения графиков с помощью компонента TChart. Написать программу по построению графика f(x) с использованием TChart.
7.1. Компонент tChart
Компонент Delphi TChart располагается на странице Additional Палитры компонентов. Это богатый возможностями, очень мощный компонент, позволяющий строить двух и трехмерные красивые диаграммы на основе разнообразных данных. Он имеет большое количество разнообразных свойств. Часть из них, в свою очередь, являются объектами и обладают собственными свойствами.
Значок
на Палитре компонентов имеет вид
. Расположенный компонент на форме
будет выглядеть так (рис. 7.1) и имя ему
присваивается по умолчаниюChart1:

Рис. 7.1. Окно компонента Chart1
Настройка свойств компонента Chart1 происходит в редакторе Editing Chart. Вызвать его можно двойным щелчком по компоненту или используя свойство SeriesList Инспектора объектов. Появится следующее окно (рис. 7.2):

Рис. 7.2. Редактор компонента диаграмм и графиков Chart1
Основные параметры диаграммы определяются на вкладке Chart1 (диаграмма), она, в свою очередь, состоит из набора дополнительных панелей.
Панель Ряд данных (Series) важная, в ней можно добавить на один график несколько диаграмм с помощью кнопки Add. При этом над значениями данных можно выполнять операции задаваемые во вкладке Series -> Data Source выбрав function выбрав функцию из списка function.
Панель Общие (General) содержит следующие элементы управления:
кнопка Export - экспорт изображения в файл,
кнопка Print Preview - предварительный просмотр и печать диаграммы,
панель Zoom - масштабирование,
панель AllowScroll - отвечает за прокрутку изображения.
Средства панели Оси (Axis) регулируют настройку координатных осей, заголовков, их масштаб, шаг пунктирной сетки и многое другое.
Панель Заголовков (Titles) помогает оформить заголовки.
Панель Легенда (Legend) отвечает за внешний вид и содержание легенды.
Панель Панель (Panel) задает оформление панели основы: цвет и форму границы панели (можно сделать так, что диаграмма будет расположена на панели имеющей градиентную заливку).
Панель Страницы (Paging), позволяет разделить диаграммы на страницы. Для этого необходимо в поле (точки на странице) Points per Page подобрать соответствующее значение.
Панель Границы (Walls) отвечает за цвет и границы диаграммы.
Панель 3D дает возможность настройки 3D эффектов, (изменение масштаба, положения в пространстве), простым передвиганием ползунков управления.
Вкладка Ряды данных (Series) отвечает за оформление каждого ряда данных (графиков добавленных с помощью вкладки Chart). Текущий ряд данных задается с помощью раскрывающегося списка. Наиболее важная панель Источник данных данных (Data Sourece). В ней можно выбрать отказ от генерации значений (No Data), создать случайные значения (Random Values) или сформировать значения, как результат применения функции (список Function) к значениям рядов.
Чтобы добавить график или диаграмму выберете вкладку Add. Появится диалоговое окно TeeChartGallery, затем выберите Line (он выбран по умолчанию) и снимите флажок трехмерного отображения (рис. 7.3)

Рис. 7.3. Окно выбора отображения информации в Chart1
Нажмите OK. По умолчанию имя вашего графика Series1 (рис. 7.4) – это один из множества возможных наборов точек данных принадлежащих объекту Chart. При этом каждый конкретный набор точек данных – это также объект, принадлежащий диаграмме.
Каждый набор имеет множество опций для отображения его на диаграмме. В данном случае под диаграммой понимается сам объект Chart1.
Также необходимо отметить, что класс TChart к которому принадлежит компонент Chart1 является наследником класса TPanel, поэтому он обладает родительским свойством parent и может содержать в себе некоторые другие объекты типа TButton, TSpeedButton и т.д. Фактически это более усложненная панель для отображения.

Рис. 7.4. С помощью кнопки «Add» можно добавлять графики и диаграммы с именами по умолчанию Series2, Series3 и т.д.
Для задания отображаемых значений используются методы серии Series.
Основные:
Метод Clear очищает серию от занесенных ранее данных.
Метод Add:
Add(const AValue: Double; const ALabel: String; AColor: TColor)
позволяет добавить в диаграмму новую точку (x). Параметр AValue соответствует добавляемому значению, параметр ALabel - название, которое будет отображаться на диаграмме и в легенде, AColor - цвет. Заметим, что параметр ALabel - не обязательный, его можно задать пустым: ' '.
Метод AddXY:
AddXY(const AXValue, AYValue: Double; const ALabel: String; AColor: TColor)
позволяет добавить в график функции новую точку (x, y). Параметр AXValue и AYValue соответствуют аргументу и функции. Параметр ALabel и AColor те же, что и в методе Add.
Рассмотрим некоторые примеры.
Пример использования метода Add для свойства Series. Например, чтобы заполнить круговую диаграмму, отображающую доли 6 различных значений, можно использовать следующий код:
Chart1.Series[0].Add(135,'Домашние сети'); Chart1.Series[0].Add(123,'ADSL'); Chart1.Series[0].Add(99,'Коммутируемые'); Chart1.Series[0].Add(52,'Кабельные сети'); Chart1.Series[0].Add(19,'GPRS'); Chart1.Series[0].Add(17,'Другие типы');
Для выбора заголовка диаграммы используется свойство Text.Title, являющееся списком строк. В типичном случае следует лишь изменить 0-й элемент этого списка, который по умолчанию имеет значение "TChart":
Chart1.Title.Text[0]:='Типы подключения к Интернету в Москве';
Если разместить на форму кнопку, а приведенный выше код использовать в качестве обработчика события OnClick, то при нажатии не нее в области построения будет выводиться соответствующая диаграмма (рис. 7.5).
Рис.
7.5.
Построенная диаграмма
Пример использования метода AddXY для свойства Series.
Обработчик события OnActivate формы создает график, показанный на рис.7.6.
procedure TForm1.FormActivate(Sender: TObject);
var k: integer;
begin
for k:=0 to 20 do
Chart1.SeriesList[0].AddXY(k, cos(k*pi/5),' ', clRed);
end;
Рис.7.6.
Пример использования компонента TChart
Так же возможна печать диаграммы (графика), для чего у компонента Chart1 имеется метод Print, так что выводить построенные диаграммы на печать чрезвычайно просто:
Chart1.Print;
