Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Delph_nov11.doc
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
2.45 Mб
Скачать

События

  • OnDrawColumnCell Для того чтобы в DBGrid изменить цвет отдельных записей можно использовать событие onDrawColumnCell. Например, выводить записи красным цветом тех людей, которые родились не в Гродно:

procedure Tfgl.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

begin

if datamodule1.Queryosndan.FieldByName('mestor').Asstring<>'Гродно' then

DBGrid1.Canvas.Font.Color:=clred;

DBGrid1.DefaultDrawColumnCell(Rect, dataCol,column,State);

end;

Другие компоненты визуализации

Компонент DBText – аналог обычной метки Label, но связанный с данными. Он позволяет отображать данные некоторого поля, но не дает возможности его редактировать. Тип отображаемого поля может быть различным: строка, число, булева величина, дата. Компонент автоматически переводит соответствующие типы в отображаемые символы. Он располагается на странице DataControls. Для того, чтобы связать данные с соответствующим полем таблицы, нужно в свойстве DataSource выбрать соответствующий компонент, например DataSourceOsndan, а свойство DataField установить в соответствующее поле таблицы.

DBEdit – связанный с данными аналог обычного окна редактирования Edit. Он позволяет отображать и редактировать данные полей различных типов: строка, число, булева величина. Впрочем, если задать в компоненте ReadOnly=true, то он, как и DBText, будет служить элементом отображения, но несколько более изящным, чем DBText.

DBMemo- связанный с данными аналог обычного многострочного окна редактирования Memo. Он позволяет отображать и редактировать данные поля типа Memo, а также данные любых типов, указанных выше для предыдущих компонентов, например в этом компоненте можно отображать и редактировать текст приказа на слушателя, характеристику сотрудника и т.п.

DBRichEdit –связанный с данными аналог обычного многострочного окна редактирования текста в обогащенном формате RTF. Область применения та же, что и для компонента DBMemo.

DBImage – связанный с данными аналог обычного компонента Image. Компонент позволяет отображать графические поля, например, фотографии слушателей.

DBChecBox – связанный с данными аналог обычного индикатора ChecBox. Он позволяет редактировать и отображать данные поля булева типа. Если при выводе данных поле имеет значение true, то индикатор включается. И наоборот, при редактировании поля присваемое ему значение определяется состоянием индикатора.

DBRadioGroup – связанный с данными аналог группы радиокнопок RadioGroup. Компонент позволяет отображать и редактировать поля с ограниченным множеством возможных значений

Все перечисленные компоненты имеют два основных свойства: DataSource – источник данных (компонент типа TDataSource) и свойство DataField – поле, с которым связан компонент.

Характерной особенностью всех этих компонентов, отличающих их от несвязанных с данными аналогичных компонентов, является отсутствие в окне Инспектора Объектов их основных свойств, отображающих содержание: Caption в DBText, Text в DBEdit, Picture в DBImage и т.п. Все эти свойства имеются в компонентах, но они доступны только во время выполнения.

DBLookupListBox- используется для отображения поля в виде списка. Здесь для связи с компонентой DataSource используется свойство ListSourse (ри.15), а не свойство DataSource, которое используется для связанных таблиц. Свойство ListField связывается с полем, которое будет отображаться в списке. Свойство KeyField позволит выбрать соответствующее каждой записи ключевое поле.

DBLookupComboBox- используется для отображения поля в виде выпадающего списка. Это особенно актуально при нехватке места (рис.16). Например, для того чтобы из выпадающего списка можно было выбрать специальности из таблицы Spec необходимо:

  1. На форме разместить компоненту QuerySpec, в свойстве SQL которой прописать: Select * from spec order by name_spec

  2. Н а форме разместить компоненту DataSourceSpec, свойство DataSet которой выбрать QuerySpec.

  3. У компоненты DBLookupComboBoxSpec (рис.15) свойство ListSource выбрать DataSourceSpec, свойство KeyField (ключевое поле) выбрать Kod_spec, свойство Listfield (поле для отображения в выпадающем списке) выбрать Name_spec.

Тогда фрагмент кода кнопки «Подтвердить» рис.16:

DataModule1.Queryd.Close;

DataModule1.Queryd.SQL.Clear;

D ataModule1.Queryd.SQL.add('insert into obuch (tn, ndata, kdata, kod_fob, kod_spec, kurs) values (:tn,:ndata,:kdata,:kod_fob,:kod_spec,:kurs)');

DataModule1.Queryd.ParamByName('tn').Asinteger:=DataModule1.Queryosndan.fieldbyname('tn').AsInteger;

DataModule1.Queryd.ParamByName('kod_fob').AsInteger:=DBLookupComboBoxfob.KeyValue;

DataModule1.Queryd.ParamByName('kod_spec').AsInteger:=DBLookupComboBoxspec.KeyValue;

DataModule1.Queryd.ParamByName('kurs').AsSmallInt:= SpinEdit1.Value;

DataModule1.Queryd.ParamByName('kdata').AsDate:=DateTimePickerobuch3.Date;

DataModule1.Queryd.ParamByName('ndata').AsDate:=DateTimePickerobuch2.Date;

DataModule1.Queryd.ExecSQL;

D BCtrlGrid – компонент напоминает таблицу записей (DBGrid), но позволяет представлять данные не в жестко заданном табличном виде, а с помощью выбранного набора компонентов с панели Data Controls (в число размещаемых компонентов не могут входить такие компоненты, как DBGrid, DBNavigator, DBlistBox, DBRadioGroup, DBLookuplist, DBRichEdit, то есть все, представляющие несколько значений поля) и в произвольном виде. Например, можно задать число столбцов в свободной форме.

DBChart – предназначен для построения диаграмм.