Л ЕКЦИЯ #6. Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . Ранее мы рассмотрели компонент визуализации данных DBGrid. Рассмотрим некоторые его свойства. Columns. Это свойство представляет собой набор объектов, каждый из которых отражает один столбец таблицы. Ранее мы использовали столбцы, формирующиеся по умолчанию. Теперь сформируем их, используя свойство Columns. Щелкнем правее этого свойства в Object Inspector. На экране появится пустое окно Редактора Столбцов. Возможно туда добавлять столбцы, выбирая соответствующие поля в Object Inspector в свойстве FieldName. Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . Выделить в Редакторе Столбцов столбец, связанный с полем F2 и посмотреть его свойства в Object Inspector. Свойство ButtonStyle определяет стиль ввода данных в поле текущей записи. Свойство ButtonStyle определяет стиль ввода данных в поле текущей записи. Свойство ButtonStyle может принимать значения: - cbsAuto (появление при редактировании кнопки, связанной с выпадающим списком допустимых значений); - cbsEllipsis (появление при редактировании кнопки с многоточием «…», при щелчке на которой наступает событие OnEditButtonClick компонента DBGrid); - cbsNone (обычное редактирование без каких-либо кнопок).Если установить значение cbsAuto (по умолчанию), то можно дополнительно установить свойство столбца PickList, которое представляет собой список допустимых значений поля. В нашем примере для F2 можно занести в PickList значения «бухгалтерия», «Отдел1» и «Отдел2». Тогда при попытке пользователя редактировать это поле в соответствующей ячейке появляется выпадающий список, содержащий допустимые значения. Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . Если значение ButtonStylecbsEllipsis, то при попытке пользователя редактировать данное поле, в нем появится кнопка с многоточием «…». При щелчке на данной кнопке наступает событие OnEditButtonClick компонента DBGrid. В обработчике события можно указать, какое поле редактируется, по свойству SelectedField компонента DBGrid. Это свойство позволит занести в поле установленные пользователем значения. Если buttonStylecbsNone, то редактирование поля происходит без каких-либо подсказок в виде кнопок. Свойство DropDownRows (по умолчанию 7) определяет допустимое число строк в списке, отображающее без появления полосы прокрутки. Если реальное число строк меньше DropDownRows, размер списка устанавливается автоматически. Аналогично происходит редактирование, если свойство cbsAuto относится к столбцу, содержащему поле просмотра. Тогда выпадающий список заполняется автоматически. Если данное поле не является результирующим полем просмотра и список PickList не заполнен, то никакой кнопки при редактировании не появится. Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . На странице DataControl имеются и другие компоненты визуализации. DBText – аналог обычной метки Label, но связанный с данными. Позволяет отображать данные некоторого поля, но не дает возможность его редактировать. Тип отображаемого поля может быть: строка, число, булева величина. Компонент автоматически переводит соответствующие типы в отображаемые символы. DBEdit – связанный с данными аналог обычного окна редактора Edit. Он позволяет отображать и редактировать данные полей различных типов. Если задать в компоненте ReadOnly=TRUE, то он будет служить элементом отображения, но несколько более изящным, чем DBText. DBMemo – связанный с данными аналог обычного многострочного окна редактирования Memo. Он позволяет отображать и редактировать данные поля типа Memo, а также данные любых типов, указанные выше для предыдущих компонентов. Например, в этом компоненте можно отображать и редактировать характеристики сотрудников. Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . DBRichEdit – связанный с данными аналог обычного многостраничного окна редактирования текста в обогащенном формате RTF. Область применения та же, что и для DBMemo. DBImage – связанный с данными аналог обычного индикатора CheckBox. Он позволяет отображать и редактировать данные булева типа. Если при выводе данных поле имеет значение TRUE, то индикатор включается. И, наоборот, при редактировании поля присваиваемое ему значение определяется состоянием индикатора. DBRadioGroup – связанный с данными аналог группы радиокнопок RadioGroup. Компонент позволяет отображать и редактировать поля с ограниченным множеством значений. В нашем примере это может быть поле F2 или F7. Свойство Items определяет число кнопок и надписи на них (как в обычном RadioGroup). Компонент DBRadioGroup предоставляет ещё одну возможность ввода данных пользователя путем выбора, а не написанием полного значения поля. Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . Все компоненты визуализации данных имеют два основных свойства: DataSource (источник данных) и DataField (поле, с которым связан компонент). Характерной особенностью всех этих компонентов, отличающих их от несвязанных с данными аналогов, является отсутствие таких свойств как: Caption в DBText, Text в DBEdit, Picture в DBImage и т.д. Их нет в Object Inspector, но они доступны программно. Эти свойства – это значения соответствующих полей таблицы БД. Перечисленные компоненты могут размещаться непосредственно на форме, на любой панели, а могут располагаться на специальном компоненте – таблице DBGrid. Этот компонент состоит из нескольких панелей, из которых проектируется только первая, а остальные повторяют ее структуру, но относятся к последующим записям в таблице. DBCtrlGrid имеет свойство DataSource, которое автоматически передается всем расположенным на панелях компонентов, связанных с данными. Свойство RowCount определяет число строк в таблице (по умолчанию 3), а свойство ColCount – число колонок (по умолчанию 1). Ширину и высоту панелей DBCtrlGrid можно задавать свойствами PanelWidth и PanelHeight соответственно, или задавая общую ширину и высоту компонента свойствами Width и Height. В этом случае Delphi может автоматически округлить заданные Вами значения так, чтобы обеспечить равную ширину и высоту любой панели. Н ЕКОТОРЫЕ КОМПОНЕНТЫ ВИЗУАЛИЗАЦИИ ДАННЫХ . Размещение компонентов визуализации на отдельной форме не вызывает никаких принципиальных сложностей. В модуле основной формы в разделе «Implementation» ввести оператор «uses», ссылающийся на основную форму, чтобы получить доступ к компоненту типа TDataSource, расположенный на главной форме. Тогда при задании свойств DataSource компонента, расположенного на вспомогательной форме, в выпадающем списке появится источник данных Form1.DataSource1, который нужно выбрать. В главной форме в раздел «Implementation» внести оператор «uses», ссылающийся на вспомогательную форму, чтобы в нужный момент ее сделать видимой.