Автор: Пользователь скрыл имя, 06 Февраля 2013 в 01:52, аттестационная работа
Класс TList -- универсальный список. Он представляет собой массив нетипированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются -- эта обязанность лежит на программисте. Приведем доступные ему методы и свойства класса.
Важнейшие типы данных
И в конце раздела рассмотрим некоторые типы данных, используемые компонентами доступа к данньм.
TIndexOptions = set of (ixPrimary, ixUnigue, ixDescending, ixNonMaintained, ixCaseInsensitive).
Данное множество используется при создании новых индексов свойством Addlndex компонента TTable.
TDataSetState = (dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields).
Данное множество используется свойством State компонентов TDataSource, TTable, TQuery и TStoredProc и определяет состояние компонента.
dslnactive -- для компонента TDataSource означает отсутствие связанного набора данных (таблицы) или выключенное свойство Enable, для компонента TTable устанавливает свойство Active в False. Компонент в этом состоянии не может отвечать на запросы о передаче данных.
dsBrowse -- исходное состояние для компонента, имеющего открытый набор данных без накопленных изменений.
dsEdit -- определяет для компонента возможность редактирования записей.
dslnsert -- разрешает компоненту добавлять новые записи в связанный набор данных.
dsSetKey -- определяется для компонентов, проводящих поиск в наборе данных по ключам.
dsCalcFields -- предусмотрено для компонентов, имеющих вычисляемые поля, и устанавливается при работе с ними.
Компоненты отображения данных и управления данными
Рассматриваемые в этом разделе компоненты предназначены для построения пользовательского интерфейса приложений Delphi, работающих с базами данных. Размещаются они на странице Data Controls Палитры компонентов. Многие из них наследуют свойства стандартных управляющих элементов, но есть и предназначенные исключительно для работы с базами данных. Их основная задача заключается в отображении данных наиболее удобным для пользователя способом, а также реализация возможностей по редактированию данных и их передаче для последующего обновления набора данных. Компоненты, рассматриваемые здесь, являются заключительным звеном в цепочке компонентов, реализующих механизм работы приложения с базами данных (см. рис. 4.4).
Особую роль среди компонентов отображения и управления данными играют TDBGrid и TDBNavigator. Первый является наиболее удобным средством -для работы с табличными данными, а второй реализует набор основных функций навигационного перемещения по данным.
В Delphi существует возможность просмотра данных в компонентах непосредственно в процессе отладки приложения, при условии наличия активной связи с базой данных. В этом режиме очень удобно проверять правильность работы компонентов с необходимыми типами данных и эргономичность создаваемого интерфейса. Работать с записями и полями связанного набора данных можно при посредстве Редактора полей. Единственное, чего нельзя делать в таком режиме -- это изменять исходные данные.
В этом разделе собрана справочная информация обо всех компонентах отображения и управления данными. В описаниях компонентов приводятся сведения только о тех свойствах и методах, которые важны с точки зрения работы с базами данных, все прочие элементы стандартны и реализуют простейшие интерфейсные свойства. При необходимости информацию о них можно получить в разделах третьей главы, посвященных стандартным визуальным компонентам для построения пользовательского интерфейса. Кроме этого, не-
которые рассматриваемые свойства и методы могут присутствовать у нескольких компонентов, поэтому их описание приводится только один раз в первом по порядку компоненте. Например, свойства DataSource, Enabled, FieldCount и Fields принадлежат сразу нескольким из двенадцати рассматриваемых компонентов, их описание приводится в компоненте TDBGrid. Следует отметить, что все перечисленные свойства играют важную роль в управлении отображаемыми данными.
Компонент TDBGrid
TObject--"TPersistent-->TCo:
Предназначен для просмотра и редактирования всех записей связанного с ним набора данных в развернутом виде. Данные структурированы в табличном формате, представление полей и расположение колонок зависит от значений свойств компонентов типа TField набора данных.
Свойства компонента
(Pb) property DataSource: TDataSource; (Pb) property Enabled: Boolean; Wo) property FieldCount: Integer; |
Определяет источник получения данных. Содержит имя экземпляра компонента TDataSource, через который передается набор данных. |
Определяет режим отображения данных. В значении True любые изменения связанных с компонентом данных будут отражаться в TDBGrid. Свойство устанавливается в False при необходимости совершить большую последовательность действий (например, последовательное перемещение по записям), визуализация которых замедлит выполнение операции. | |
Содержит число полей связанного с компонентом набора данных, которые будут отображаться в компоненте. | |
(Ro) property Fields[Index: Integer]: TField; |
Возвращает указатель на объект типа TField из числа полей, содержащихся в наборе данных. Для идентификации используется параметр Index, определяющий порядковый номер элемента массива и соответствующее ему поле. |
property SelectedField: TField; |
Идентифицирует поле, которое помечено курсором в панели компонента. |
property Selectedlndex: Integer; |
Возвращает порядковый номер текущего поля в отображаемом компонентом наборе данных. Используется для идентификации поля в свойстве Fields. Нумерация начинается с нуля. |
Обработчики событии
(Pis) property OnColEnter: TNotifyEvent; |
Вызывается при перемещении курсора клавишей <Tab> в поле или при щелчке мыши в любой ячейке компонента. |
(Pb) property OnColExit: TNotifyEvent; |
Вызывается при перемещении курсора из поля при помощи клавиши <ТаЬ> или при щелчке мыши в любой ячейке компонента вне поля. |
Компонент TDBNavigator
TO'bject-"TPersistent-->
->TCustomControl->
Модуль DBCTRLS
Страница Палитры компонентов Data Controls
Рис. 4.18. Назначение кнопок компонента TDBNavigator
Это Навигатор базы данных, предлагающий разработчику простой и эффективный механизм управления данными, представляемыми в компонентах отображения. Обычно он используется совместно с компонентом TDBGrid. Навигатор представляет собой панель, в которой содержится ряд кнопок.
Каждая кнопка реализует определенную операцию перемещения по набору данных или редактирования данных. Назначение всех кнопок описывается в приведенной ниже таблице. Разработчик может по своему желанию изменять набор видимых в приложении кнопок Навигатора. Для этого используется свойство VisibleButtons, которое в Инспекторе объектов модифицируется комплексным редактором.
Название Первая Предыдущая |
Идентификатор nbFirst nbPrior |
Назначение |
Перемещает курсор на первую запись. Активизирует кнопки "Следующая" и "Последняя", деактивизирует кнопку "Первая". | ||
Перемещает курсор на предыдущую запись. Активизирует кнопки "Следующая" и "Последняя", если они были неактивны. | ||
Следующая |
nbNext |
Перемещает курсор на следующую запись. Активизирует кнопки "Предыдущая" и "Первая", если они были неактивны. |
Последняя |
nbLast |
Перемещает курсор на последнюю запись. Активизирует кнопки "Предыдущая" и "Первая", деактивизирует кнопку "Последняя". |
Вставить Редактировать Удалить Сообщение Прекратить Восстановить |
nblnsert nbEdit nbDelete nbPost nbCancel nbRefresh |
Добавляет новую, пустую запись после текущей. Устанавливает набор данных в состояние dsInsert+dsEdit. |
Устанавливает для набора данных состояние Edit и разрешает редактировать текущую запись. Удаляет текущую запись и переводит курсор на следующую запись. | ||
Сохраняет сделанные изменения на сервере базы данных. | ||
Прекращает редактирование и восстанавливает текущую запись. Для набора данных отменяется режим dsInsert+dsEdit. | ||
Восстанавливает текущую запись, считывая данные из базы данных. |
Свойства компонента
(РЬ) property ConfirmDelete: Boolean; |
В значении True предопределяет применение диалогового окна подтверждения удаления записи при нажатии кнопки "Удалить" Навигатора баз данных. |
(Pb) property VisibleButtons: TButtonSet; TButtonSet = set of TNavigateBtn; TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast, nblnsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh) ; |
Содержит множество идентификаторов кнопок Навигатора, которые будут использоваться компонентом при работе приложения. По умолчанию работоспособны все кнопки. Идентификаторы кнопок представлены в приведенной таблице. |
Компонент TDBText
TObject-->TPersistent--"
->TCustomLabel-"TDBText
Модуль DBCTRLS
Страница Палитры компонентов Data Controls
Позволяет отображать содержимое поля текущей записи связанного набора данных. Ближайший аналог в VCL -- компонент TLabel, поэтому TDBText не предоставляет возможность изменять отображаемое поле. Все изменения данных в соответствующем поле текущей записи оперативно отражаются в компоненте. Компонент не имеет свойств или методов, которые бы не были рассмотрены выше.
Компонент TDBEdit
TObject-->TPersistent-->
-"TCustomMaskEdit->TDBEdit
Модуль DBCTRLS
Страница Палитры компонентов Data Controls
Предназначен для отображения и редактирования заданного поля текущей записи набора данных. Наследует многие свойства и методы компонента TEdit. Редактирование данных возможно при следующих значениях свойств связанного компонента TDataSource: State = dsEdit; CanModify = True.
Свойство компонента
(Ro) property IsMasked: Boolean; |
Определяет использование шаблона при редактировании данных. |
Методы компонента
procedure ValidateEdit; |
Проверяет модифицированный текст на соответствие шаблону. В случае обнаружения ошибки выводит соответствующее сообщение. |
Компонент TDBMemo
TObject->TPersistent^
-->TCustomMemo-->TDBMemo
Модуль DBCTRLS
Страница Палитры компонентов Data Controls
Предназначен для отображения и редактирования многострочных данных, включая данные типа BLOB и является модификацией компонента TMemo для работы с базами данных. Компонент работает с полем текущей записи связанного набора данных. Необходимое поле определяется свойством DataField.
Свойства компонента
(Pb) property AutoDisplay: Boolean; |
В значении True определяет режим автоматического обновления данных типа BLOB в компоненте при их изменении в базе данных. В значении False необходимо предусмотреть использование методов обновления данных. |
Методы компонента
procedure LoadMemo; |
Загружает данные типа BLOB для использования компонентом. |
Компонент TDBImage
TObject->TPersistent-->
Позволяет приложению использовать изображения, которые хранятся в полях типа BLOB связанного набора данных. Компонент преобразует изображение в формат DIB для внутреннего использования. Редактирование изображения возможно при посредстве операций работы с буфером обмена.
Свойства компонента
(Pb) property AutoDisplay: Boolean; |
В значении True определяет режим автоматического обновления графических данных в полях типа BLOB в компоненте при их изменении в базе данных. Отключение свойства используется для ускорения просмотра изображения в компоненте. |
Методы компонента
procedure LoadPicture; |
Загружает изображение, определенное свойством Picture, для использования компонентом. |
Компонент TDBListBox
TObject--"TPersistent-->
->TCustomListBox->TDBListBox
Модуль DBCTRLS
Страница Палитры компонентов Data Controls
Является модификацией для работы с базами данных компонента TListBox, у которого он позаимствовал все основные свойства и методы. Позволяет редактировать связанное поле текущей записи набора данных путем выбора возможного значения из списка. Список заполняется при помощи свойства Items. Компонент не имеет свойств или методов, которые бы не были рассмотрены выше.
Компонент TDBComboBox
TObject--"TPersistent-"
->TCustomComboBox-"TDBComboBox
Модуль DBCTRLS
Страница Палитры компонентов Data Controls
Представляет из себя комбинацию компонентов TDBEdit и TDBListBox, объединяя поле редактирования и список выбора. Модификация значения связанного поля текущей записи набора данных осуществляется путем выбора существующего значения из списка или набором нового значения в поле ввода. Компонент не имеет свойств или методов, которые бы не были рассмотрены выше.
Компонент TDBCheckBox
TObject-->TPersistent--"
->TCustornCheckBox-->
Модуль DBCTRLS
Страница Палитры компонентов Data Controls
Используется для отслеживания фиксированных значений связываемого поля текущей записи и является потомком стандартного компонента TCheckBox. Компонент может находиться в помеченном или непомеченном состоянии. Если значение связанного поля не совпадает со свойствами ValueChecked и ValueUnchecked одновременно, то компонент находится в неактивном состоянии.
Свойства компонента
(РЙ property ValueChecked: String; |
Содержит контрольные значения для связанного с компонентом поля. Может содержать как единичные значения, так и точкой с запятой. Если значение поля совпадает со значением свойства ValueChecked, то компонент помечается. |
(Pb) property ValueUnchecked: String; |
Содержит значения, совпадение которых со значением связанного поля переводит компонент в непомеченное состояние. |