Главная страница
Навигация по странице:

  • ЛАБОРАТОРНАЯ РАБОТА 8

  • 1.1. Как строится график с помощью компонента

  • Задание

  • Настройка формы

  • Работа с компонентом TChart.

  • Справочно.

  • Вкладки страницы

  • Написание процедуры обработки события создания формы

  • Написание процедур обработки событий нажатия на кнопки

  • Лабораторная. Лабораторный практикум(часть1) Электронный. Практикум по дисциплине Разработка приложений в визуальных средах для студентов специальностей


    Скачать 3.27 Mb.
    НазваниеПрактикум по дисциплине Разработка приложений в визуальных средах для студентов специальностей
    АнкорЛабораторная
    Дата12.03.2023
    Размер3.27 Mb.
    Формат файлаdoc
    Имя файлаЛабораторный практикум(часть1) Электронный.doc
    ТипПрактикум
    #982312
    страница14 из 24
    1   ...   10   11   12   13   14   15   16   17   ...   24

    2. Постановка задачи



    Разработать приложение, состоящее из нескольких Unit в соответствии с индивидуальным заданием.

    3. Задания



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

    ЛАБОРАТОРНАЯ РАБОТА 8

    Разработка приложения с выдачей результатов вычислений в виде графиков




    Цель лабораторной работы: изучить возможности построения графиков с помощью компонента отображения графической информации TChart. Написать и отладить программу построения на экране графика заданной функции.

    1. Краткие сведения



    1.1. Как строится график с помощью компонента TChart
    Обычно результаты расчетов представляются в виде графиков и диаграмм. Система Delphi имеет мощный пакет стандартных программ вывода на экран и редактирования графической информации, который реализуется с помощью визуально отображаемого на форме компонента TChart (рисунок 8.1).



    Рисунок 8.1 – Форма приложения
    Построение графика (диаграммы) производится после вычисления таблицы значений функции y=f(x) на интервале [Xmin, Xmax] с данным шагом. Полученная таблица передается в специальный двумерный массив Seriesk (k-номер графика) компонента TChart с помощью метода Add. Компонент TChart осуществляет всю работу по отображению графиков, переданных в объект Seriesk: строит и размечает оси, рисует координатную сетку, подписывает название осей и самого графика, отображает переданную таблицу в виде всевозможных графиков или диаграмм. При необходимости, с помощью встроенного редактора EditingChart в компоненту TChart передаются данные о толщине, стиле и цвете линий, параметрах шрифта подписей, шагах разметки координатной сетки и другие настройки. В процессе работы программы изменение параметров возможно через обращение к соответствующим свойствам компонента TChart. Так, например, свойство TChart.BottomAxis содержит значение максимального предела нижней оси графика и при его изменении во время работы автоматически изменяется изображение графика (см. ниже).
    1.2. Пример выполнения задания
    Задание: составить программу, отображающую графики функций sin(x) и cos(x) на интервале [Xmin..Xmax]. Предусмотреть возможность изменения разметки координатных осей, а также шага построения таблицы.
    Настройка формы

    Панель диалога программы организуется в виде, представленном на рисунке 8.1. Для ввода исходных данных используются окна TEdit. Компонент TChart вводится в форму путем нажатия пиктограммы ,расположенной на закладке Additional палитры компонент.
    Работа с компонентом TChart.

    Для изменения параметров компонента TChart необходимо дважды щелкнуть по нему мышью в окне формы. Появится окно редактирования EditingChart (см. рисунок 8.2). Для создания нового объекта Series1 нужно щелкнуть по кнопке Add на странице Series.

    Справочно. Серия– массив числовых данных, используемых при построении одной диаграммы (графика). Каждый компонент может содержать несколько серий. Свойства серий устанавливаются с помощью Редактора Диаграмм или программно.
    В появившимся диалоговом окне TeeChartGalleri выбрать пиктограмму с надписью Line (график выводится в виде линий). Если нет необходимости представления графика в трехмерном виде, отключить независимый переключатель 3D. После нажатия на кнопку ОК появится новая серия с название Seriesl. Для изменения названия Seriesl нажать кнопку Title.



    Рисунок 8.2 – Задание параметров компонента TChart
    В появившимся однострочном редакторе набрать имя отображаемой функции "sin(x)". Аналогичным образом создать объект Series2 для функции cos(x).

    Для изменения надписи над графиком на странице Titles в многострочном редакторе набрать: “Графики функций".

    Для разметки осей выбрать страницу Axis и научиться устанавливать параметры настройки осей. Нажимая различные кнопки меню, познакомиться с другими возможностями EditingChart.

    Справочно.

    Вкладки страницы Chart:

    Series

    Описание и настройка серий диаграммы

    Кнопки на вкладке Series:

      • Add - добавление серии (новой диаграммы)

      • Title - изменение имени серии;

      • Change - изменение типа диаграммы для серии;

      • Clone - копирование диаграммы (серии);

      • Delete - удаление диаграммы

    General

    Общие настройки диаграммы (Печать, Экспорт, Масштабирование, Прокрутка, Поля)

    Axis

    Описание осей координат диаграмм и графиков

    Titles

    Заголовок диаграммы

    Legend

    Параметры легенды (списка обозначений) диаграммы

    Panel

    Вид панели, на которой отображается диаграмма

    Paging

    Количество точек на 1 страницу диаграммы.

    Walls

    Характеристики полей диаграммы.

    3D

    Характеристики 3-мерного отображения диаграммы

    Вкладки страницы Series:

    Format

    Параметры диаграммы для серии (зависит от типа диаграммы).

    Point

    Параметры отображения точек на графиках

    General

    Общие настройки (отображение осей, форматы значений и т.п.).

    Marks

    Отображение сведений о значениях на ярлычках и параметры их вывода.

    Data Source

    Источник данных серии. Возможные значения:

    • No Data - значения, вводимые программно; в приложении нужно вызывать методы управления значениями для построения диаграмм (Add, Delete, Clear).

    • Random Values - случайные числа; полезно при настройке диаграммы.

    • Function - значения, определяемые функцией. Диаграмма строится на основании значений, взятых из других серий с использованием функций Copy, Average, Low, High, Divide, Multiply, Subtract и Add.

    • DataSet (только для DBChart) - значения берутся из заданного набора данных.


    Написание процедуры обработки события создания формы

    В данном месте программы устанавливаются начальные пределы и шаг разметки координатных осей. Когда свойство Chart1.BottomAxis Automatic имеет значение False, автоматическая установка параметров осей не работает.
    Написание процедур обработки событий нажатия на кнопки

    Процедура TForm1.Button1Click обрабатывает нажатие кнопки " Построить график ". Для добавления координат точек (X, Y) из таблицы значений в двумерный массив объекта Seriesk используется процедура Series1.AddXY(Const AXValue, AYValue: Double; Const AXLabel: String; AColor: TColor): Longint, где AXValue, AYValue - координаты точки по осям X и Y; AXLabel может принимать значение ‘’; AColor задает цвет линий (если равен clTeeColor, то принимается цвет, определенный при проектировании формы).

    Текст программы:

    Unit LabRab_8;

    Interface

    Uses

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

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

    TForm1 = class(TForm)

    Chart1: TChart;

    Button1: TButton;

    Button2: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    Edit7: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Series1: TLineSeries;

    Series2: TLineSeries;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    //procedure Button2Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;
    var

    Form1: TForm1;

    Xmin, Xmax, Ymin, Ymax, Hx, Hy, h : extended;
    Implementation

    {$R *.dfm}
    Procedure TForm1.FormCreate(Sender: TObject);

    begin

    Xmin := 0;

    Xmax := 2 * Pi;

    Ymin := -1;

    Ymax := 1;

    Hx := 0.1;

    Hy := 0.5;

    h := 0.01;

    Edit1.Text := FloatToStr(Xmin);

    Edit2.Text := FloatToStr(Xmax);

    Edit3.Text := FloatToStr(Ymin);

    Edit4.Text := FloatToStr(Ymin);

    Edit5.Text := FloatToStr(Hx);

    Edit6.Text := FloatToStr(Hy);

    Edit7.Text := FloatToStr(h);
    Chart1.BottomAxis.Automatic := False; // Отключение автоматического

    //определения параметров нижней оси

    Chart1.BottomAxis.Minimum := Xmin; // Установка левой границы нижней оси

    Chart1.BottomAxis.Maximum := Xmax; // Установка правой границы нижней оси
    Chart1.LeftAxis.Automatic := False; // Отключение автоматического

    //определения параметров левой оси

    Chart1.LeftAxis.Minimum := Ymin; // Установка нижней границы левой оси

    Chart1.LeftAxis.Maximum := Ymax; // Установка верхней границы левой оси

    Chart1.BottomAxis.Increment := Hx; // Установка шага разметки по нижней оси

    Chart1.LeftAxis.Increment := Hy; // Установка шага разметки по левой оси

    end;
    Procedure TForm1.Button1Click(Sender: TObject);

    var

    x, y1, y2 : extended;

    begin

    Series1.Clear;

    Series2.Clear;

    Xmin := StrToFloat(Edit1.Text);

    Xmax := StrToFloat(Edit2.Text);

    h := StrToFloat(Edit7.Text);

    x := Xmin;

    Repeat

    y1 := sin(x);

    Series1.AddXY(x, y1, '', clTeeColor);

    y2 := cos(x);

    Series2.AddXY(x, y2, '', clTeeColor);

    x := x + h;

    Until (x > Xmax);

    end;
    //Procedure TForm1.Button2Click(Sender: TObject);

    //begin

    //Halt //Exit

    //end;
    end.
    1   ...   10   11   12   13   14   15   16   17   ...   24


    написать администратору сайта