На этом шаге мы рассмотрим компонент TDBStatusLabel.
Компонент TDBStatusLabel (рис.1) представляет собой статический элемент управления, позволяющий отображать в текстовом виде текущее состояние связанного с ним через свойство DataSource набора данных.
Рис.1. Компонент TDBStatusLabel
В зависимости от текущего состояния набора данных (просмотр, редактирование, поиск и т.д.) текст компонента TDBStatusLabel изменяется, в соответствии с форматом:
<Имя_набора_данных>: <состояние_набора_данных>.
Если свойство Style установлено в значение lsRecordNo, то компонент отображает текущую позицию в наборе данных в формате:
<номер_текущей_записи>:<полное_число_записей>.
Информация о номере записи может быть отображена только для драйверов DBase и Paradox и таблиц в памяти (TMemoryTable). В версии для Delphi 3 и выше отображение номера записи определяется возвращаемым значением метода IsSequenced соответствующего набора данных.
Если свойство Style установлено в значение lsRecordSize, то компонент отображает размер записи в наборе данных.
Если свойство SQLCount установлено в False (по умолчанию), то подсчет числа записей тоже не ведется для SQL-данных, а только для данных dBase и Paradox.
Имя набора данных задается свойством DataSetName, и может быть изменено обработчиком события OnGetDataName. Строки, задающие состояние набора данных, как и все остальные константы библиотеки RX Library, хранятся в ресурсе типа STRINGTABLE.
Рассмотрим некоторые свойства компонента:
Свойство | Описание |
---|---|
property Style: TDBLabelStyle; | Свойство задает тип отображаемого компонентой текста:
|
property SQLCount: Boolean; | Свойство определяет, будет ли осуществляться подсчет полного числа записей при значении свойства Style = lsRecordNo , если набор данных относится к SQL-базе данных. По умолчанию свойство равно False . При больших размерах выборки из SQL-таблиц подсчет числа записей может занять значительное время. |
property DataSetName: string; | Свойство задает имя для набора данных, используемое при отображении состояния этого набора данных компонентой TDBStatusLabel. Если в режиме дизайна формы вы зададите значение этого свойства равным пустой строке, то при выполнении приложения (run-time) значением этого свойства будет DataSource.DataSet.Name. |
property OnGetDataName: TGetStringEvent; | Событие происходит, когда необходимо изменить текст компонент TDBStatusLabel при изменении состояния связанного с ней набора данных. Если обработчик этого события определен, то возвращаемое им значение используется вместо значение свойства DataSetName. |
Приведем пример: поместим на форму компоненты RxDBGrid1, Table2, DataSource2 – для связи базы данных, DBStatusLable1, DBStatusLable2, DBStatusLable3, RxLable1, RxLable2, RxLable3 (рис.2).
Рис.2. Форма с размещенными на ней компонентами
RxDBGrid1, Table2, DataSourсe2, DBStatusLable1, DBStatusLable2,
DBStatusLable3, RxLable1, RxLable2, RxLable3
Компоненты RxLable1, RxLable2, RxLable3 отображают свойство Style для компонент DBStatusLable1, DBStatusLable2, DBStatusLable3 соответственно.
DBStatusLable1: Style = lsState;
DBStatusLable2: Style = lsRecordNo;
DBStatusLable3: Style = lsRecordSize;
Работа программы показана на рис.3.
Рис.3. Отображение компонентами
DBStatusLable1, DBStatusLable2, DBStatusLable3 состояния набора данных,
текущую позицию в наборе данных, размер записи набора данных
Текст этого примера можно взять здесь.
На следующем шаге мы рассмотрим компонент TRxDBComboBox.