Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Виберіть компоненту Chart та перемістіть її на форму. Двічі нажавши на компоненту Ви потрапите у вікно Редактора Діаграм (мал. 2) на сторінку Chart, що має кілька закладок. Насамперед вас буде



Лабораторна робота № 3

Виберіть компоненту Chart та перемістіть її на форму. Двічі нажавши на компоненту Ви потрапите у вікно Редактора Діаграм (мал. 2) на сторінку Chart, що має кілька закладок. Насамперед вас буде цікавити на ній закладка Series. Клацніть на кнопці Add — додати серію. Ви потрапите у вікно (мал. 3), у якому ви можете вибрати тип діаграми або графіка. У цьому випадку виберіть Pie — кругову діаграму. Скориставшись закладкою Titles ви можете задати заголовок діаграми, закладка Legend дозволяє задати параметри відображення легенди діаграми (списку позначень) або взагалі забрати її з екрана, закладка Panel визначає вид панелі, на якій відображається діаграма, закладка 3D дає вам можливість змінити зовнішній вигляд вашої діаграми: нахил, зрушення, товщину й т.д.

Рис. 1
Пример приложения с диаграммами: начальное состояние (а) и состояние при изменении типа диаграммы и увеличении фрагмента графика (б)

а)

 

б)

 

Рис. 2
Редактор Диаграмм, страница Chart, закладка Series

Коли ви працюєте з Редактором Діаграм і вибрали тип діаграми, у компонентах Chart на вашій формі відображається її вид із занесеними в неї умовними даними (див. мал. 4).

Рис. 3
Выбор типа диаграммы в Редакторе Диаграмм

Тому ви відразу можете спостерігати результат застосування різних опцій до вашого додатка, що дуже зручно.

Сторінка Series, що також має ряд закладок, дає вам можливість вибрати додаткові характеристики відображення серії. Зокрема, для кругової діаграми на закладці Format корисно включити опцію Circled Pie, що забезпечить при будь-якому розмірі компонента Chart відображення діаграми у вигляді кола. На закладці Marks кнопки групи Style визначають, що буде написано на ярличках, що ставляться до окремих сегментів діаграми: Value — значення, Percent — відсотки, Label — назви даних і т.д. У прикладі мал. 1 включена кнопка Percent, a на закладці General установлений шаблон відсотків, що забезпечує відображення тільки цілих значень.

Ви можете, якщо хочете, додати на цей компонент Chart ще одну тотожну серію, нажавши на закладці Series сторінки Chart кнопку Clone, а потім для цієї нової серії нажати кнопку Change (змінити) і вибрати інший тип діаграми, наприклад, Bar. Звичайно, два різних типи діаграми на одному малюнку будуть виглядати погано. Але ви можете виключити індикатор цієї нової серії на закладці Series, а потім надати користувачеві вибрати той або інший вид відображення діаграми (нижче буде показано, як це робиться).



Вийдіть із Редактора Діаграм, виділыть у вашому додатку нижній компонент Chart і повторіть для нього завдання властивостей за допомогою Редактора Діаграм. У цьому випадку вам треба буде задати дві серії, якщо хочете відображати на графіку дві криві, і вибрати тип діаграми Line. Оскільки мова йде про графіків, ви можете скористатися закладками Axis й Walls для завдання координатних характеристик осей і тривимірних граней графіка.

На цьому проектування зовнішнього вигляду додатка завершується. Залишилося написати код, що задає дані, які ви хочете відображати. Для тестового додатка давайте задамо в круговій діаграмі просто деякі константні дані, а в графіках - функції синус і косинус.

Для завдання відображуваних значень треба використати методи серій Series. Зупинимося тільки на трьох основних методах.

Рис. 4.
Форма приложения рис. 1 с занесенными в нее условными данными

Метод Clear очищає серію від занесених раніше даних.

Метод Add:

Add(Const AValue: Double; Const ALabel: String;

AColor: TColor)

дозволяє додати в діаграму нову крапку. Параметр AValue відповідає доданому значению, параметр ALabel — назва, що буде відображатися на діаграмі й у легенді, AColor — кольори. Параметр ALabel — не обов'язковий, його можна задати порожнім: ''.

Метод AddXY:

AddXY(Const AXValue, AYValue: Double;

Const ALabel: String; AColor: TColor)

дозволяє додати нову крапку в графік функції. Параметри AXValue й AYValue відповідають аргументу й функції. Параметри ALabel і AColor тіж, що й у методі Add.

Таким чином, процедура, що забезпечує завантаження даних у нашому прикладі, може мати вигляд:

const

A1=155;

A2=251;

A3=203;

A4=404;

var

i: word;

begin

With Series1 do

begin

Clear;

Add(A1, 'Цех 1', clYellow);

Add(A2, 'Цех 2', clBlue);

Add(A3, 'Цех 3', clRed);

Add(A4, 'Цех 4', clPurple);

end;

Series2.Clear;

Series3.Clear;

for i:=0 to 100 do

begin

Series2.AddXY(0.02*Pi*i, sin(0.02*Pi*i), '', clRed);

Series3.AddXY(0.02*Pi*i, cos(0.02*Pi*i), '', clBlue);

end;

end;

Цю процедуру можна включити в обробку натискання якої-небудь кнопки, у команду меню або просто в подію OnCreate форми. Оператори Clear потрібні, якщо в процесі роботи додатка ви збираєтеся обновляти дані. Без цих операторів повторне виконання методу Add й AddXY тільки додасть нові крапки, не видаливши колишні.

Якщо ви передбачили, наприклад, для даних, відображуваних у діаграмі, дві серії Series1 й Series4 різних видів — Pie й Bar, то можете ввести процедуру, що змінює на вимогу користувача тип діаграми. Цю процедуру можна ввести в подію OnClick якої-небудь кнопки, у команду меню або, наприклад, просто в обробку натискання на компоненті Chart. Для того, щоб завантажити дані в Series4 і зробити цю діаграму в перший момент невидимої, можна вставити наприкінці наведеної раніше процедури оператори

Series4.Assign(Series1);

Series4.Active:=false;

Перший із цих операторів переписує дані, поміщені в Series1, у серію Series4. А другий оператор робить невидимої серію Series4. Зміна типу діаграми здійснює процедура

Series1.Active:= not Series1.Active;

Series4.Active:= not Series4.Active;

Весь код програми:

unit UChart;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Series, TeEngine, TeeProcs, Chart, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Chart1: TChart;
Chart2: TChart;
Series1: TPieSeries;
Series2: TLineSeries;
Series3: TLineSeries;
Series4: TBarSeries;
procedure FormCreate(Sender: TObject);
procedure Chart1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
const A1=155;
A2=251;
A3=203;
A4=404;
var i:word;
begin
With Series1 do
begin
Clear;
Add(A1,'Цех 1',clYellow);
Add(A2,'Цех 2',clBlue);
Add(A3,'Цех 3',clRed);
Add(A4,'Цех 4',clPurple);
end;
Series4.Assign(Series1);
Series4.Active:=false;
Series2.Clear;
Series3.Clear;
for i:=0 to 100 do begin
Series2.AddXY(0.02*Pi*i,sin(0.02*Pi*i),'',clRed);
Series3.AddXY(0.02*Pi*i,cos(0.02*Pi*i),'',clBlue);
end;
end;
procedure TForm1.Chart1Click(Sender: TObject);
begin
Series1.Active:= not Series1.Active;
Series4.Active:= not Series4.Active;
end;
end.

 

Завдання для самостійного виконання

1. У даному прикладі представлене додаток, у якому здійснюється побудова декількох графіків функцій (графіки Exp(x) и 0,5*Exp(x)) за допомогою компонента Chart, а також зміна параметрів відображення кривих під час виконання додатка.

Помістите компонент Chart на форму й запустите редактор діаграм. Створіть вісім кривих наступних типів:

- Line – 2 серії;

- Bar – 2 серії;

- Area – 2 серії.

- Point – 2 серії;

Всі налаштування встановіть за власним бажанням.

Вигляд додатка на етапі розробки з розміщеними на формі компонентами

 

Введемо дві змінні N й M типу integer. За допомогою їх будемо звертатися до номера серії компонента Chart1, завдяки чому можна буде відображати лінії на серіях й очищати вміст серій. Змінна N буде зберігати в собі номер серії, на якій потрібно відобразити лінію, а змінна M буде запам'ятовувати номер серії, на якій був показаний графік до натискання кнопки, тобто вміст серії з номером M повинне бути очищене після натискання кнопки.

 

Для відображення лінії напишемо процедуру (у цьому випадку вона названа Grafik), що буде очищати вміст серій і відображати лінії на них. Оскільки необхідно відображати відразу по двох серії однакового типу, і лише одина змінна зберігає номер серії, то при побудові ліній будемо звертатися до серії з номером N і до серії з номером N+1, тому що серії попарно мають однаковий тип. Але слід зазначити, що нумерація серій починається не з 1, а з 0, тому N може приймати значення 0, 2, 4, 6. Якщо задати N непарним, то графіки будуть відображатися на серіях різних типів, тобто ми припустимося помилки.

 

При написанні процедури, що обробляє щиглик по кнопці спочатку задаємо значення N, потім викликаємо процедуру Grafik, і лише потім міняємо значення змінної M.

 

Вид додатка під час його виконання

 

 

Текст файлу Unit1.pas

 

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, BubbleCh;

type

TForm1 = class(TForm)

Chart1: TChart;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TBarSeries;

Series4: TBarSeries;

Series5: TPointSeries;

Series6: TPointSeries;

Series7: TAreaSeries;

Series8: TAreaSeries;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;N,M:integer;

implementation

{$R *.dfm}

procedure Grafik(N,M:integer);

var

x: real; i:integer;

begin

begin

Form1.Chart1.Series[M].Clear;Form1.Chart1.Series[M+1].Clear;

x:=0;

for i:=0 to 18 do begin

Form1.Chart1.Series[N].AddXY(x, exp(x), '', clBlue);

Form1.Chart1.Series[N+1].AddXY(x, exp(x)/2, '', clRed);

x:=x+0.2; end;end;end;

procedure TForm1.Button1Click(Sender: TObject);

begin

N:=0;Grafik(N,M); M:=0;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

N:=2;Grafik(N,M); M:=2;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

N:=4;Grafik(N,M); M:=4;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

N:=6;Grafik(N,M);M:=6;

end;end.

 

2.Побудувати графіки функції

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Дата добавления: 2015-09-29; просмотров: 20 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Дорогие друзья и коллеги! Приглашаем вас принять участие в интерактивном обучающем формате | 

mybiblioteka.su - 2015-2024 год. (0.032 сек.)