Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

реализации этого метода.

Но сначала вкратце рассмотрим компонент TChart, который мы будем использовать в программе для вывода графиков. Основным свойством компо-

нента является Series – наборы данных (серии), на основе которых и строятся графики или диаграммы. Если дважды щелкнуть по компоненту, размещенному на форме, то мы попадем в редактор серий, рис. 6.88.

Рис. 6.88. Редактор серий

Существуют разные типы Series для построения разных типов графиков или диаграмм, например Line series – для построения линий (графиков),

Pie series – для построения круговых диаграмм и т.д. Выберите тип серии

Line series. В инспекторе объектов появится объект ChartLineSeries1

типа TLineSeries.

Рис. 6.89. Создание объекта типа TLineSeries

Создать программно объект типа TLineSeries можно оператором

721

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Chart1LineSeries1:= TLineSeries.Create(Chart1);

Для добавления серии в TChart существует метод

procedure AddSeries(ASeries: TBasicChartSeries);

Добавление точек в объект типа TLineSeries производится с помощью

функции

function AddXY(X, Y: Double): Integer;

Свойство ShowPoints: boolean позволяет показывать или не показы-

вать точки на графике.

Свойство SeriesColor: TColor позволяет указать цвет линии.

Чтобы вывести график функции, например, sin(x) можно написать сле-

дующую процедуру:

procedure Plot_sin; var

i, n: integer; Chart1LineSeries1: TLineSeries;

begin

n:= 100;

Chart1LineSeries1:= TLineSeries.Create(Chart1); Chart1LineSeries1.SeriesColor:= clRed; Chart1LineSeries1.ShowPoints:= false; Chart1.AddSeries(Chart1LineSeries1); Chart1.Title.Visible:= true; Chart1.Title.Text.Text:= 'График функции sin(x)'; for i:= 0 to n - 1 do

722

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

Chart1LineSeries1.AddXY(i*Pi*0.02,

sin(i*Pi*0.02));

end;

Итак, давайте начнем реализацию метода наименьших квадратов. Создайте новый проект, поместите на форму компоненты TMainMenu, TOpenDialog и TChart, как показано на рис. 6.90. Меню программы должно состоять из сле-

дующих пунктов:

Файл

Определение коэффициентов полинома Графики

В свою очередь, меню "Файл" должен состоять из подпунктов "Открыть" и

"Выход". Меню "Определение коэффициентов полинома" должна содержать пункт "Вычислить". И меню "Графики" должен содержать пункты "График экспериментальных точек" и "Подобранная кривая", рис.6.91.

Присвойте имена меню в программе как показано на рис. 6.92.

Вставим в пункты меню рядом с их текстами пиктограммы. Для этого по-

местите на форму компонент TImageList и заполните его подходящими значками. В свойстве Images MainMenu1 укажите имя TImageList. Затем для каждого пункта меню укажите соответствующие индексы в свойствах

ImageIndex.

723

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Рис. 6.90. Форма приложения

Рис. 6.91. Создание меню программы с помощью редактора меню

Рис. 6.92. Имена меню в программе

724

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

Код программы:

unit unit1;

{$mode objfpc}{$H+} interface

uses

Classes, SysUtils, LResources, Forms, Controls,

Graphics, Dialogs, ExtCtrls, TAGraph, TASeries,

Buttons, StdCtrls, Menus, FileUtil; type

{ TForm1 }

TForm1 = class(TForm)

Chart1: TChart;

MainMenu1: TMainMenu;

MCalculate: TMenuItem;

Menu_File: TMenuItem;

Menu_Calculate: TMenuItem;

Menu_Grafic: TMenuItem;

Menu_Open: TMenuItem;

Menu_Exit: TMenuItem;

Menu_Exp: TMenuItem;

Menu_Curve: TMenuItem;

OpenDialog1: TOpenDialog;

procedure FormCreate(Sender: TObject); procedure Menu_ExpClick(Sender: TObject); procedure Menu_CurveClick(Sender: TObject); procedure Menu_OpenClick(Sender: TObject); procedure MCalculateClick(Sender: TObject);

private

725

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773