Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Теоретические сведения. Компонент TChart (диаграмма)




Компонент TChart (диаграмма)

Компонент TChart предназначен для построения диаграмм с использованием информации, содержащейся в наборе данных. Компонент размещаются на форму при нажатии кнопки на дополнительной (Additional) панели инструментов. Этот компонент достаточно сложен и имеет большое количество разнообразных свойств, многие из которых являются компонентами и имеют свои свойства. Установка значений этих свойств выполняется при разработке приложения с помощью Редактора диаграмм, который вызывается с помощью контекстного меню EditChart … этого компонента (рис. 20. 1).

Рис. 20.1 Окно редактора диаграмм

Основным свойством этого компонента является свойство Series типа TChartSeries, представляющее собой массив диаграмм, выводимых в области компонента (часто компонент отображает только одну диаграмму). Разработчик должен указать тип диаграммы и источник данных. Тип выбранной диаграммы и ее название отображаются на странице Chart – Series редактора диаграмм. Для добавления новой диаграммы пользуются кнопкой Add. Для выбранной диаграммы можно выполнить следующие действия:

· изменить имя по умолчанию (Series1, Series2 и т. д.) – кнопка Title;

· изменить тип диаграммы – кнопка Change;

· скопировать диаграмму – кнопка Clone;

· удалить диаграмму – кнопка Delete.

Источник данных выбирается на странице Series – DataSourse из следующих вариантов:

· No Data — значения, вводимые программно;

· Random Values — случайные числа;

· Function — значения, определяемые выбранной функцией.

Если выбран программный способ ввода значений, то при выполнении приложения нужно вызывать соответствующие методы. Для управления значениями, по которым строится диаграмма, часто используются методы Add, Delete или Clear.

Функция Add (Const AValue: Double; Const ALabel: String; AColor: TColor): Longint добавляет к диаграмме значение, указанное параметром AValue. Параметры ALabel и AColor — необязательные и содержат соответственно подпись значения и цвет, ис­пользуемый при выводе. В качестве результата функция возвращает номер зна­чения в массиве значений диаграммы.

Функция AddXY (Const AXValue, AYValue: Double; Const AXLabel: String; AColor: TColor): Longint добавляет в серию новую точку, которая имеет X(AXValue)- и Y(AYValue)-значения. Параметры AXLabel и AColor — необязательные и содержат соответственно подпись значения и цвет, ис­пользуемый при выводе. В качестве результата функция возвращает номер зна­чения в массиве значений диаграммы.

Кроме этих функций существует несколько других методов, также позволяющих добавлять значения.

Процедура Delete (Valueindex: Longint) удаляет значение с номером, указанным параметром Valueindex. Для удаления всех значений удобно использовать процедуру Сlear.

Пример 20. 1. Построить график функции с шагом 0.1 в интервале [-5;5]. Экранная форма программы показана на рис. 20.2. Приведем фрагмент кода программы с обработкой основных событий:

const L:double=-5; // левая граница графика

R:double=5; // правая граница графика

st:double=0.1; // шаг

var

FrmGraf: TFrmGraf;

implementation

//функция для которой строится график

function y(x:double):double;

begin

y:=abs(x)+1;

end;

//обработка события при нажатии на кнопку «График»

procedure TFrmGraf.BtnGrafClick(Sender: TObject);

var m,i:integer;

x:double;

begin

BtnClear.Enabled:=true;

ChtY.Visible:=true;

ChtY.Title.Text.Add('График функции y:=abs(x)+1');

m:=round(abs(R-L)/st); //количество точек на графике

x:=L; // начальное значение x

for i:=0 to m-1 do begin

ChtY.Series[0].AddXY(x,y(x),'',clTeeColor);

x:=x+st;

end;

BtnGraf.Enabled:=false;

end;

//обработка события при нажатии на кнопку «Очистить»

procedure TFrmGraf.btnClearClick(Sender: TObject);

begin

ChtY.Title.Text.Delete(1);

ChtY.Series[0].Clear;

BtnGraf.Enabled:=true;

end;

//обработка события изменения выбора «Показать/Скрыть легенду»

procedure TFrmGraf.RgrLegClick(Sender: TObject);

Begin

if RgrLeg.ItemIndex=0 then

ChtY.Legend.Visible:=true

else ChtY.Legend.Visible:=false;

end;

Рис. 20.2. Экранная форма примера 20.1

Создание библиотеки динамической компоновки (DLL)

Библиотека динамической компоновки (библиотека) не является исполняе­мой программой, но содержащийся в ней код может быть вызван из приложе­ния или из другой DLL.

Создание библиотеки начинается выбором компонента DLLWizard на странице New в хранилище объектов, который вызывается через меню File ® New ® Other… (рис. 20. 3). Первоначально проект библиотеки состоит из одного файла, который имеет вид

library Project2;

{ Important note about DLL memory management: ShareMem must be the

first unit in your library's USES clause AND your project's (select

Project-View Source) USES clause if your DLL exports any procedures or

functions that pass strings as parameters or function results. This

applies to all strings passed to and from your DLL--even those that

are nested in records and classes. ShareMem is the interface unit to

the BORLNDMM.DLL shared memory manager, which must be deployed along

with your DLL. To avoid using BORLNDMM.DLL, pass string information

using PChar or ShortString parameters. }

uses

SysUtils,

Classes;

{$R *.res}

Begin

End.

Этот проект является заготовкой, к которой необходимо добавить код, для со­держания которого создана эта библиотека.

Ключевое слово library указывает, что это динамическая библиотека, а не ис­полняемый файл, и что при компиляции проекта будет создан файл с расшире­нием DLL, а не ЕХЕ.

Код, располагаемый между операторными скобками begin и end, служит для инициализации библиотеки и автоматически выполняется при ее загрузке. При инициализации библиотеки можно проверить какие-либо условия, задать на­чальные значения переменным и т. п.

Комментарий в проекте библиотеки предупреждает, что если функции библиотеки в качестве параметров или резуль­тата передают строки, то в раздел uses самой библиотеки и вызывающих ее программ и других библиотек должен быть включен модуль ShareMem. Причем этот модуль должен быть первым в списке модулей. Кроме того приложению и библиотеке при пе­редаче строк требуется файл BorlndMM.dll.

 

Рис. 20.3. Хранилище объектов Delphi с DLL Wizard

Дальнейшее создание библиотеки заключается в следующем

· в добавлении к проекту функций,;

· в экспортировании их из библиотеки.

Описание функций располагают между секциями подключения модулей и ини­циализации. Функции кодируются обычным способом.

Экспортирование функций заключается в объявлении функции как внешней. Для этого функция указывается в секции exports, которая имеет следующий вид:

Exports

<Имя функции> [name <Внешнее имя функции>],

<Имя функции> [name <Внешнее имя функции>];

Имя функции — это имя, заданное при описании функции в проекте библиоте­ки. Внешнее имя представляет собой имя, под которым функция экспортирует­ся и может быть вызвана извне DLL. Указывать внешнее имя не обязательно, в этом случае функция экспортируется под своим именем.

Кроме экспортируемых функций библиотека может включать в себя внутрен­ние (неэкспортируемые) функции, а также глобальные переменные.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных