Читать «Виртуальная библиотека Delphi» онлайн - страница 96
Unknown
Вы можете добавить следующую функцию в ваш модуль и вызвать, например:
Locate(Table1, Table1LName, 'Beman');
23. Как узнать, что изменилась текущая запись?
Событие
24. Как считать даты для вычисляемых полей?
При вычислении дат важно удостовериться в том, что все используемые значения подходят по типу. В документации не совсем явно отражен тот факт, что на самом деле тип
В примере,
procedure TForm1.Table1CalcFields(DataSet: TDataset);
var
T1, T2: TDateTime;
begin
Table1D1.AsDateTime := Date+2;
Table1D2.AsDateTime := Date-2;
T1 := Table1D1.AsDateTime;
T2 := Table1D2.AsDateTime;
Table1D3.AsInteger := Trunc(Double(T1) - Double(T2));
end;
Компоненты и VCL
1. Почему возникает ошибка компиляции при обращении к объекту Sender в обработчике события?
Я в обработчике события
Caption := Sender.Text;
Если вы рассматривали декларацию, объект
Caption := (Sender as TEdit).Text;
Если вы не уверены, что объект
if Sender is TEdit then …
2. Проблемы с полями класса типа TObject, TTable и т.д.
Я объявляю поле класса как
Дело в том, что в Delphi все экземпляры объектов, объявленых как class, являются динамическими. Соответственно поле MyTable, объявленное как
type
TMyClass = class(TObject)
public
MyTable: TTable;
constructor Create;
destructor Destroy; override;
end;
является указателем на класс
constructor TMyClass.Create;
begin
MyTable := TTable.Create(nil);
MyTable.DatabaseName := 'DBDEMOS';