Показать сообщение отдельно
  #2  
Старый 13.11.2007, 11:23
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

На форме DBGrid1, он связан с DataSource1, который в свою очередь связан с Table1. Выберем для Table1 базу данных DBDEMOS, таблицу animals.dbf, Active=True.
Для таблицы запустим редактор полей, добавим два поля SIZE и WEIGHT. Заведём новое поле, назовём Vasya, тип Float. Оно будет объявлено Calculated. Вычисления поместим в обработчик таблицы OnCalcFields. Если поля SIZE и WEIGHT не нужно просматривать, то у них Visible = False. Можно запускать.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, Grids, DBGrids, DBTables;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    DBGrid1: TDBGrid;
    Table1SIZE: TSmallintField;
    Table1WEIGHT: TSmallintField;
    Table1Vasya: TFloatField;
    procedure Table1CalcFields(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
  Table1Vasya.AsFloat:= Table1SIZE.AsFloat * Table1WEIGHT.AsFloat;
end;

end.
Ответить с цитированием