
- •1. Наборы данных
- •Var I: integer;
- •1.1. Состояния наборов данных
- •If not CheckBoxl.Checked then Abort;
- •If not CheckBoxl.Checked then begin
- •If CheckBox2.Checked then
- •If CheckBox2.Checked then begin
- •1.2. Режимы наборов данных
- •1.3. Доступ к полям
- •Var n: integer;
- •Var X: integer;
- •Var X: integer;
- •1.4. Особенности набора данных Table
- •If OpenDialogl.Execute then begin
- •Var n: integer;
- •If Editl.CanFocus then Editl.SetFocus;
- •1.5. Особенности набора данных Query
- •Interface
- •Implementation
- •2. Объекты поля
- •2.1 Редактор полей
- •2.2. Операции с полями
- •Var X: integer;
- •Var s: string;
- •X: real;
- •Var s: string;
- •X: real;
- •If not Tablel.Fields[2].IsValidChar(Editl.Text[1]) then
- •If (TablelCode.Required) and (TablelCode.IsNull)
- •3. Источник данных
- •Var n: integer;
- •1. Отображение и редактирование значения логического поля
- •2. Отображение и выбор значения поля
- •3. Отображение и выбор значения поля из списка
- •3.1. Простой и комбинированный списки
- •3.2. Списки, сформированные по значениям поля набора данных
- •4. Представление записей в табличном виде
- •4.1 Характеристики сетки
- •Var r :tRect;
- •4.2. Столбцы сетки
- •Var c, n :integer;
- •4.3. Использование модифицированной сетки
- •5. Использование навигационного интерфейса
- •6. Вывод графических изображений
- •Interface
- •Implementat ion
- •If OpenPictureDialogl.Execute then
- •If SavePictureDialogl.Execute then
- •7. Построение диаграмм
- •Var n: integer;
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);