Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.04 Mб
Скачать

Interface

uses

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

StdCtrls, DBCtrls, ExtCtrls, Db, DBTables, Grids, DBGrids, ExtDlgs, Mask;

type

TForml = class(TForm)

DataSourcel: TDataSource;

Tablel: TTable;

DBNavigatorl: TDBNavigator;

Buttonl: TButton;

OpenPictureDialogl: TOpenPictureDialog;

SavePictureDialogl: TSavePictureDialog;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

DBMemol: TDBMemo;

DBImagel: TDBImage;

CheckBoxl: TCheckBox;

DBEditl: TDBEdit;

DBEdit2: TDBEdit;

procedure ButtonlClicktSender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure CheckBoxlClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Forml: TForml;

Implementat ion

{$R *.DFM}

procedure TForml.FormCreate(Sender: TObj ect);

begin

OpenPictureDialogl.Filter:=

'Все файлы (*.bmp;*.ico;*.emf;*.wmf)|*.bmp;*.ico;*.emf;*.wmf';

SavePictureDialogl.Filter: ='*.bmpI *.bmp';

end;

procedure TForml.ButtonlClick(Sender: TObject);

begin

If OpenPictureDialogl.Execute then

DBImagel.Picture.LoadFromFile(OpenPictureDialogl.FileName);

end;

procedure TForml.Button2Click(Sender: TObject);

begin

If SavePictureDialogl.Execute then

DBImagel.Picture.LoadFromFile(SavePictureDialogl.FileName);

end;

procedure TForml.Button3Click(Sender: TObject);

begin

DBImagel.CopyToClipboard;

end;

procedure TForml.Button4Click(Sender: TObject);

begin

DBImagel.CutToClipboard;

end;

procedure TForml.Button5Click(Sender: TObject);

begin

DBImagel.PasteFromClipboard;

end;

procedure TForml.Button6Click(Sender: TObject);

begin

Forml.Close;

end;

procedure TForml.CheckBoxlClick(Sender: TObject);

begin

DBImagel.Stretch:=CheckBoxl.Checked;

end;

end.

Отметим, что в отличие от компонента Image, у графического компонента DBImage нет свойства canvas, позволяющего рисовать на поверхности изобра­жения.

7. Построение диаграмм

Для построения диаграмм на основании информации, содержащейся в наборе данных, предназначен компонент-диаграмма DBChart. Он позволяет выводить диаграммы различных типов, в том числе объемные. Этот компонент является достаточно сложным и имеет большое количество разнообразных свойств, многие из которых являются объектами и также имеют свои свойства. На прак­тике установка значений этих свойств выполняется при разработке приложе­ния с помощью Редактора диаграмм, чье окно Editing DBChart1 показано на рис. 8.11. Редактор дает возможность оперировать со свойствами-объектами, информация о которых отображается на его страницах и вызывается двойным щелчком на компоненте DBChart или через поле значения свойства-объекта в Инспекторе объектов (в этом случае активной становится страница, соответст­вующая выбранному свойству).

Важнейшим свойством компонента DBChart является свойство series [ index :Longint] типа TChartSeries, представляющее собой массив диаграмм, выводимых в области компонента. (Часто компонент DBChart содержит только одну диаграмму.)

Для каждой диаграммы можно установить:

  • тип;

  • название;

  • оси;

  • описание;

  • источник данных

и другие параметры.

Рис. 8.11. Редактор диаграмм

Разработчик должен как минимум указать тип диаграммы и источник данных. Тип выбранной диаграммы (диаграмм) и ее название отображаются на странице Chart-Series Редактора диаграмм (рис. 8.11). Для добавления новой диаграммы нужно нажать кнопку Add, в результате чего появляется окно, показанное на рис. 8.12. После выбора типа диаграммы, объемного или плоского варианта ее построения и нажатия кнопки ОК, диаграмма добавляется к значению свойства Series и отображается на соответствующей странице Редактора диаграмм.

Для выбранной диаграммы можно выполнить следующие действия:

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

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

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

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

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

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

  • Random Values — случайные значения;

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

  • DataSet — значения набора данных; компонент DBChart отличается от ком­понента Chart именно тем, что для него в качестве источника данных можно использовать набор данных, т. е. DBChart является более универсальным ком­понентом.

Рис. 8.12. Выбор типа диаграммы

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

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

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

В качестве примера рассмотрим, как осуществляется вывод графика.

Тип диаграммы (график) задан при разработке приложения. Вид графика при выполнении приложения показан на рис. 8.13. Используемые при его построе­нии значения вводятся построчно в редакторе Memol.

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

procedure TForml.ButtonlClick(Sender: TObject);