Шаг 11 - Коллекция TFieldDefs

Коллекция - в общем-то, специальный список с конкретизированными под данные нужды методами и свойствами. Вот TFieldDefs - коллекция для определений TFieldDef, рассмотренных в предыдущем шаге.

Это были свойства. А теперь методы.

Add

Описание -

HIDESBASE void __fastcall Add(const AnsiString Name, TFieldType DataType, int Size, bool Required);

Эта функция является obsolete, то есть устаревшей. Она используется в VCL только для совместимости со старыми программами, написанными, скажем для Delphi 2 или, там Delphi 1. Это же не IE, который если новый появляется, то через год у 50% стоит, а через два - у 100%. Я, например, часто встречаю компоненты, написанные для Delphi 2 или Delphi 3. Естественно, C++Builder 4 попадается. Как это ни странно, иногда легче на BCPPB 5 заставить работать эти вещи, чем на Delphi 5.

Что-то я заговорился. Этакое лирическое отступление. Так вот. Параметр Name определяет имя для нового FieldDef, dataType тип поля, Size его размер, ну а Required - обязательно ли присвоение значения этому полю. Теперь буду короче говорить - обязательно ли поле или нет.

Пример использования - Table1->FieldDefs->Add("IntField",ftInteger,4,false);.

AddFieldDef

Описание -

TFieldDef* __fastcall AddFieldDef(void);

Этот метод возвращает указатель на новый объект типа TFieldDef, а потом уже можно с этим указателем делать все что угодно. Пример:

void TForm1::Example()
{
TFieldDef* def = Table1->FieldDefs->AddFieldDef();
def->DataType=ftString; //например
def->Size=20;
def->Required=true;//тоже например
}

Update

Описание -

HIDESBASE void __fastcall Update(void);

Обновляет записи в источнике данных (чаще всего таблице).

Find

Описание -

HIDESBASE TFieldDef* __fastcall Find(const AnsiString Name);

Производит поиск по коллекции, сравнивая значения Name полей. Как видно из описания, возвращает указатель на объект найденный. Если он не найден, то... Как это ни странно, возвращается не NULL, а чтобы определить, найден или нет, нужно вызвать метод IndexOf класса TDefCollection (предок TFieldDefs). О нем.

IndexOf

Описание -

int __fastcall IndexOf(const AnsiString AName);

Возвращает индекс данного объекта TFieldDef. Если нет такого, возвращается -1.

Вот и все для этого шага.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Аванесов Самвел - 31.01.2002