- •Тема 2.3.15: Организация библиотек подпрограмм. План.
 - •Основные свойства компонентов Chart и dbChart (самостоятельная работа).
 - •Пример программы построения диаграмм (самостоятельная работа).
 - •Пример проекта с собственной библиотекой (самостоятельная работа).
 - •1. Основные свойства компонентов Chart и dbChart.
 - •2. Пример программы построения диаграмм.
 - •3. Пример проекта с собственной библиотекой.
 - •2. Создать вектор х, состоящий из сумм элементов строк.
 
	 
		
Тема 2.3.15: Организация библиотек подпрограмм. План.
Основные свойства компонентов Chart и dbChart (самостоятельная работа).
Пример программы построения диаграмм (самостоятельная работа).
Пример проекта с собственной библиотекой (самостоятельная работа).
Список используемой литературы:
Митчелл К. Керман, Программирование и отладка в Delphi. Учебный курс. - М: Издательский дом “Вильямс”, 2002. Стр. 506-510.
С. Бобровский, Delphi 7. Учебный курс. –М: Издательский дом “Питер”, 2003. Стр. 191-199.
Г.В. Поддубный. Введение в программирование. Учебное пособие. –О: ОНАЗ, 1999.
1. Основные свойства компонентов Chart и dbChart.
Прежде, чем рассматривать некоторые настройки компонентов Chart и DBChart, полезно коротко остановиться на некоторых свойствах, объектах и классах, описывающих эти компоненты. Дело в том, что описание этих компонентов довольно сложное и в нем нетрудно запутаться. Для того чтобы сделать обозримым все это множество свойств, в данном разделе даются некоторые справочные сведения. Компоненты Chart и DBChart имеют множество свойств, основными с точки зрения применения данного компонента можно считать перечисленные в табл. 1.
Таблица 1. Основные свойства классов TChart и TDBChart
Свойство  | 
		Назначение  | 
	
AllowPanning 
 
 
 
 
 AllowZoom 
 AnimatedZoom 
 AnimatedZoomSteps AxisVisible Backlmage 
 BackWall BottomWall Left Wall 
  | 
		Управляет возможностью пользователя прокручивать график. Возможные значения: pmNone — прокручивание запрещено, pmHorizontal — разрешена горизонтальная прокрутка, pmVertical — разрешена вертикальная прокрутка, pmBoth — разрешена прокрутка в обоих направлениях Разрешает или запрещает возможность пользователя изменять масштаб графика Определяет скачкообразное, или постепенное изменение масштаба Число шагов постепенного изменения масштаба Определяет видимость координатных осей Изображение на фоне поля графика — объект класса TPicture Это объекты класса TChartWall, описывающие при трехмерном изображении соответственно заднюю, нижнюю и левую стенки (только при View3d = true и View3dWalls = true)  | 
	
Свойство  | 
		Назначение  | 
	
BottomAxis DepthAxis, LeftAxis, RightAxis, TopAxis Canvas Chart3dPercent 
 Foot, Title 
 Legend MarginLeft, MarginTop, MarginRight, MarginBottom MaxPointsPerPage 
 
 
 
 
 
 Page 
 ScaleLastPage 
 
 
 Series SeriesList 
 
 
 
 View3d 
 View3DOptions 
 View3dWalls  | 
		Координатные оси Это объекты класса TChart Axis 
 Канва, на которой формируется изображение. Относительны (в процентах) масштаб третьего измерения в трехмерном изображении Объекты класса TChartTitle, описывающие подпись и заголовок графика Легенда (список обозначений) Левое, верхнее, правое и нижнее поля графика 
 
 
 Число точек на страницу. По умолчанию 0 — это значит, что все данные представлены на одной странице. При задании положительного значения MaxPointsPerPage все данные делятся на страницы с заданным числом точек. Навигация по страницам осуществляется с помощью свойства Page и методов NumPages, PreviousPage и NextPage Определяет текущую страницу при значении MaxPoints- PerPage > 0 При значении true масштаб последней страницы такой же, как и предыдущих. При значении false изображение на последней странице растягивается по оси аргументов, чтобы заполнить всю площадь графика Индексированный список серий Индексированный список, определяющий размещение серий по оси Z, направленной вглубь. Эта последовательность указывает, какая серия рисуется поверх другой и какая серия размещается ближе, а какая дальше при трехмерном изображении Обеспечивает трехмерный, или плоский характер изображения Объект класса TView3DOptions, содержащий свойства перестроения трехмерного изображения Разрешает рисование левой и нижней стенок при трехмерном изображении  | 
	
В табл. 2 приведен список основных методов класса TChart.
Таблица 2. Основные методы классов TChart и TDBChart
Метод класса  | 
		Назначение  | 
	
ChartPreview 
  | 
		Вызов диалога предварительного просмотра перед печать  | 
	
Метод класса  | 
		Назначение  | 
	
ChartXCenter ChartYCenter CopyToClipboardBitmар, CopyToClipboardMetafile GetCursorPos 
 
 MaxXValue, MaxYValue, MinXValue, MinYValue 
 NumPages PreviousPage, NextPage 
 PrintLandscape, PrintPortrait, PrintPartialCanvas, PrintPartial, PrintRect, Print SaveChartToFile, SaveToBitmapFile, SaveToMetaFile, SaveToMetaFileEnh ZoomRect, ZoomPercent, UndoZoom  | 
		Возвращают координаты соответственно середины горизонтальной и вертикальной осей Копируют изображение в буфер обмена Clipboard в форматах .bmp, .wmf, .emf Возвращает позицию курсора в пикселях типа TPoint, пересчитанную в систему координат поля графиков Возвращают минимальные и максимальные значения со ответствующих указанных в вызове координатных осей Общее число страниц и переход к предыдущей и следующей страницам. PreviousPage эквивалентно Page -1. NextPage эквивалентно Page +1 Методы печати 
 
 
 
 Методы сохранения изображение в файлах форматов .tee, .bmp, .wmf, .emf 
 
 Методы изменения масштаба  | 
	
В табл. 3 приведен список некоторых специальных событий для класса TChart.
Таблица 3. Специальные события классов TChart и TDBChart
Событие  | 
		Назначение  | 
	
OnAfterDraw 
 
 OnAllowScroll 
 
 OnClickAxis 
 OnClickLegend 
 OnClickSeries  | 
		Наступает после прорисовки изображений всех серий. Обработчик может использоваться для нанесения на график дополнительных изображений и текстов Наступает перед началом прокрутки. Обработчик может использоваться для запрещения прокрутки или для указания величины прокрутки Наступает при щелчке на оси. Обработчик позволяет определить ось и координаты щелчка Наступает при щелчке на легенде. Обработчик позволяет определить координаты щелчка Наступает при щелчке на одной из точек серии. Обработчик позволяет определить координаты щелчка  | 
	
Многие из перечисленных в табл. 1 свойств являются объектами, которые в свою очередь обладают множеством свойств, методов и событий. Прежде всего, надо остановиться на классе TChartSeries, являющемся родительским для других специализированных классов серий. В табл. 4 приведены основные свойства этого класса.
Таблица 4. Основные свойства класса TChartSeries
Свойство  | 
		Назначение  | 
	
Active ColorEachPoint 
 
 Count Cursor 
 DataSource 
 
 
 
 FirstValuelndex LastValuelndex 
 
 
 
 
 HorizAxis 
 Marks 
 ParentChart SeriesColor 
 ShowInLegend Title 
 ValueColor ValueFormat 
 ValueMarkText 
 
 VertAxis 
 XLabel 
 XValue 
 XValues 
  | 
		Указывает, является ли серия активной При значении true каждая точка или интервал графика между соседними точками окрашивается в свой цвет, который берется из массива ValueColor Число точек серии Вид, который приобретает курсор мыши, перемещающийся над точкой данной серии Источник данных типа TComponent, в качестве которого может фигурировать другая серия, набор данных (компонент типа TTable, TQuery, TClientDataset — это доступно не в компоненте Chart, в компоненте DBChart), компонент ActiveX и др. Индекс первой (последней) точки, в которой значение X расположено между значениями Maximum и Minimum горизонтальной оси, т.е. первой (последней) видимой точки. Если масштаб не увеличивался и свойство Automatic горизонтальной оси = true, то FirstValuelndex = 0, a LastValuelndex = Count - 1. Если в серии нет ни одной видимой точки, FirstValuelndex = LastValuelndex = -1 Указывает горизонтальную ось, связанную с данной серией: aTopAxis — верхняя, aBottomAxis — нижняя Объект класса TSeriesMarks, содержащий информацию о способе отображения маркеров точек серии Родительский компонент Chart или DBChart Цвет серии по умолчанию. Если ColorEachPoint = true, то цвет SeriesColor не используется Определяет, должна ли серия отображаться, в легенде Название серии (может быть написано кириллицей). Используется при отображении в легенде Массив цветов, используемых при ColorEachPoint = true Строка, содержащая формат, используемый для отображения данных серии Индексированный массив маркеров, заданных для соответствующих точек (соответствует XLabel, если для точки задана метка, и YValue, если точка не задана) Указывает вертикальную ось, связанную с данной серией: aLeftAxis — левая, aRightAxis — правая Индексированный массив меток, заданных для соответствующих точек списка XValues Возвращает значение аргумента точки с указанным индексом Index Список класса TChartValueList, содержащий описание множества значений аргумента серии  | 
	
Свойство  | 
		Назначение  | 
	
YValue 
 YValues 
 ZOrder  | 
		Возвращает значение функции точки с указанным индексом Index Список класса TChartValueList, содержащий описание множества значений функции серии Индекс серии в списке SeriesList. Изменение последовательности можно производить с помощью свойства SeriesList  | 
	
Остановимся только на классе TChartValueList, описывающем свойства XValues и YValues — списки аргументов и функций. Свойства и методы этого класса приведены в табл. 5.
Таблица 5. Свойства и методы класса TChartValueList
Свойство  | 
		Назначение  | 
	
Count DateTime 
 
 Delete First Last Locate 
 MaxValue, MinValue, Total,TotalABS Multiplier Name 
 
 
 
 Order 
 
 
 
 
 Scroll 
 Sort Valu ValueSource  | 
		Функция, возвращающая число точек в списке Указывает (при значении true), что данные серии — это данные типа дат и времени (TDateTime). При значении false данные воспринимаются как действительные числа Функция, удаляющая из списка точку с указанным индексом Функция, возвращающая первое значение Функция, возвращающая последнее значение Функция, возвращающая индекс точки, в которой значение равно указанной величине, или —1, если точка не найдена Максимальное, минимальное значения, сумма всех значений, сумма модулей всех значений 
 Множитель, на который умножаются все данные Имя, используемое для идентификации списка данных. Все типы серий имеют имена списков "X" и "Y", но некоторые серии имеют дополнительные списки: например, серии TCandleSeries имеют списки "OpenValues", "CloseValues", "HighValues", "LowValues" Свойство только времени выполнения, определяющее, должны ли точки аргумента автоматически сортироваться в возрастающей или убывающей последовательности, или должна сохраняться их первоначальная последовательность. Возможные значения: loNone — не сортируются, loAscending — сортируются в порядке возрастания, loDescending — сортируются в порядке убывания. Значение loNone позволяет строить многозначные графики Циклический сдвиг всех точек на одну позицию влево. Первая точка (First) становится последней (Last) Сортировка списка в соответствии со значением свойства Order Индексированный список всех значений Строка, указывающая источник данных. Если свойство серии DataSource ссылается на набор данных, то ValueSource — имя поля. Если свойство DataSource ссылается на другую серию, то ValueSource — имя Name в списке TChartValueList  | 
	
Класс TChartAxis описывает объекты, отображающие координатные оси. В табл. 6 приведены основные свойства этого класса.
Таблица 6. Основные свойства класса TChartAxis
Свойство  | 
		Назначение  | 
	
Automatic 
 
 AutomaticMaximum AutomaticMinimum 
 AxisValuesFormat DateTimeFormat 
 Labels 
 LabelsMultiline 
 LabelsOnAxis 
 LabelStyle 
 
 
 
 
 Logarithmic 
 Maximum, Minimum 
 RoundFirstLabel Title 
 
 Visible  | 
		Задает автоматический выбор масштаба в соответствии с минимальным и максимальным значениями данных серий, связанных с этой осью Задают при Automatic = false автоматический выбор соответственно максимального и минимального значения на оси Строки форматирования действительных чисел и дат/времени, используемые при отображении меток делений осей Задает или запрещает отображение надписей около делений оси Задает или запрещает отображение надписей в нескольких строках Задает или запрещает отображение надписей в начальной и конечной точках оси Определяет, что именно отображается около делений оси: talAuto — автоматический выбор стиля, talNone — ничего, talValue — численные значения, talMark — метки, стиль которых задается свойством серии Series-Marks, talText — текст меток, содержащийся в свойстве серии XLabels Определяет логарифмический (при значении true) или линейный масштаб Максимальное и минимальное значения. Свойства доступны (даже для чтения) только при Automatic = false Задает или запрещает округление начальной точки оси Объект, отображающий заголовок оси. Имеет свойства Caption — надпись, Angle — угол (0, 90, 180, 270 или 360 градусов), Font — шрифт Определяет видимость оси  | 
	
У класса TChartAxis имеется еще множество методов и свойств, определяющих метки оси, их длину, частоту, линии, используемые при рисовании, начальные и конечные точки и т.п. Все эти свойства и методы могут потребоваться только в случае, если вас не устраивает стиль оси, принятый по умолчанию.
Класс TView3DOptions описывает объект (свойство) View3DOptions, обеспечивающий перестроение трехмерных изображений. Этот класс имеет свойства, представленные в табл. 7.
Таблица 7. Свойства класса TView3DOptions
Свойство  | 
		Назначение  | 
	
Elevation 
 HorizOffset 
 Orthogonal 
 
 Perspective 
 Rotation 
 Tilt 
 VertOffset 
 Zoom 
 ZoomText  | 
		Наклон изображения в градусах. 360 — без наклона, 270 — вид сверху. Действует только при Orthogonal = false Горизонтальный сдвиг: положительное значение — сдвиг вправо, отрицательное — влево Булево свойство, задающее (при значении true) ортогональное отображение. При этом значении Orthogonal не действуют свойства Elevation, Rotation, Perspective Отображение перспективы, значения от 0 (отсутствие перспективы) до 100%. Действует только при Orthogonal = false Горизонтальное вращение вокруг вертикальной оси. Значения от 0-360 градусов. Действует только при Orthogonal = false Вертикальное вращение вокруг горизонтальной оси. Значения от 0-360 градусов. Действует только при Orthogonal = false Вертикальный сдвиг: положительное значение — сдвиг вниз, отрицательное — вверх Масштаб в процентах. Значение > 100 — увеличение изображения, значение < 100 — уменьшение Определяет, должен ли размер текста изменяться при изменении значения Zoom  | 
	
