972_____________________________________________Глава 15

dsFilter       Происходит обработка события OnFilterRecord. Может наблю-
даться только ограниченное множество данных и не может
проводиться редактирование или вставка новой записи

dsNew Value   Внутреннее временное состояние, показывающее, что доступно
свойство поля NewValue.

dsOldValue    Внутреннее временное состояние, показывающее, что доступно
свойство поля OldValue

dsCurValue    Внутреннее временное состояние, показывающее, что доступно
свойство поля CurValue

dsBlockRead   При перемещении курсора не включается проверка данных и
не генерируются события при перемещении курсора

dsInternalCalc Временное состояние, используемое внутри набора данных,

чтобы показать, что надо рассчитать значение поля, в котором
FieldKind имеет значение fkInternalCalc

Пять последних состояний чисто служебные и не представляют интереса для
пользователя. Они устанавливаются автоматически, когда приложение обращает-
ся к соответствующему свойству TField, и наблюдаться из приложения не могут.
Состояния dsCalcFields и dsFilter также устанавливаются автоматически при воз-
никновении событий OnCalcField и OnFilterRecord и наблюдаться из приложения
не могут. А остальные состояния могут устанавливаться в приложении во время
выполнения, но не непосредственно, а с использованием различных методов.

Метод Close закрывает соединение с базой данных, устанавливая свойство Ac-
tive набора данных в false. При этом State переводится в состояние dslnactive.

Метод Open открывает соединение с базой данных, устанавливая свойство Ac-
tive набора данных в true. При этом State переводится в состояние dsBrowse.

Метод Edit переводит набор данных в состояние dsEdit.

Методы Insert и InsertRecord вставляют новую пустую запись в набор дан-
ных, выполняют еще ряд операций, о которых вы можете посмотреть в справке
C++Builder, и переводят State в состояние dslnsert.

Методы EditKey, SetRange, SetRangeStart, SetRangeEnd и AppIyRange, свя-
занные с поиском записи и с заданием допустимого диапазона изменения данных,
переводят State в состояние dsSetKey.

Многие другие методы также устанавливают автоматически различные состо-
яния набора данных. При программировании работы с базой данных надо следить
за тем, чтобы набор данных вовремя был переведен в соответствующее состояние.
Например, если вы стали редактировать запись, не переведя предварительно набор
данных в состояние dsEdit методом Edit, то будет сгенерировано исключение EDa-
tabaseError с сообщением «Dataset not in edit or insert mode» — «Набор данных не в
режиме Edit или Insert».

Style — свойство TPen

Определяет стиль рисования линий пером
Класс TPen

Определение

enum TPenStyle {psSolid, psDash, psDot, psDashDot, psDashDotDot,
psClear, psInsideFrame);

_property TPenStyle Style