с реляционными базами данных 10 глава




Флажок DBCheckBox можно применять также для отображения и редактирова­ния строковых полей, если воспользоваться свойствами ValueChecked и ValueUnChecked.

Свойство ValueChecked типа string содержит строковые значения, которые устанавливают связанный с этим полем флажок во включенное состояние. От­дельные значения разделяются точкой с запятой. В качестве значений допуска­ются любые алфавитно-цифровые символы, в том числе русские буквы. Регистр алфавитных символов не различается, т. е. значения да и да считаются одина­ковыми. Например: DBCheckBoxl.ValueChecked:= 'True;T;Yes;Y;Да;Д';

Свойство ValueUnChecked типа string содержит строковые значения, которые устанавливают связанный с этим полем флажок в выключенное состояние. Зна­чения задаются таким же образом, как и для свойства ValueChecked: DBCheckBoxl.ValueUnChecked:= 'False;F;No;N;Нет;Н';

Если поле не содержит ни одного из значений, указанных в свойствах ValueChecked и ValueUnChecked, то флажок устанавливается в неопределенное состояние.

Отметим, что несмотря на наличие приведенных свойств, возможности флажка DBCheckBox по редактированию строковых полей намного меньше, чем у элемента DBEdit.


136


Часть II. Технологии доступа к данным


Отображение и выбор значения поля

В ряде случаев возникает необходимость ввода или отображения в поле одного из значений, входящих в состав фиксированного набора. С этой целью удобно использовать компонент DBRadioGroup (рис. 6.1), представляющий собой груп­пу зависимых переключателей, из которых в каждый момент времени может быть включен (выбран) только один. Зависимые переключатели также называют просто переключателями; в форме они отображаются в виде кружка с текстовой надписью.

Рис. 6.1. Использование переключателей

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

Управление числом и названиями переключателей производится с помощью свой­ства items типа TStrings, позволяющего получить доступ к отдельным пере­ключателям в группе. Это свойство содержит строки, отображаемые как заго­ловки переключателей. Отсчет строк в массиве начинается с нуля: items [0], items [1] и т. д. Обычно задание значений этого свойства выполняется при раз­работке приложения с помощью Редактора строк. При выполнении приложения для манипуляции со строками (заголовками) можно использовать такие методы, как Add и Delete.

Свойство Values типа TStrings содержит список значений поля, на которые должны реагировать переключатели группы. Управление этим списком осущест­вляется аналогично управлению списком items. Если возможные значения свойства Values не заданы, то они выбираются из значений свойства items, т. е. в этом случае значение, соответствующее переключателю, совпадает с на­званием этого переключателя.


Глава 6. Визуальные компоненты для работы с данными


137


Группа переключателей работает следующим образом. Переключатель включается при переходе к очередной записи, если значение связанного с ним поля содер­жит одно из значений, присутствующих в списке Values. Если же поле содер­жит значение, отсутствующее в списке возможных, то ни один переключатель не выбирается. Изменение значения поля происходит при выборе другого пере­ключателя группы.

(Замечание^

Для поля, с которым связана группа переключателей, пользователь может выбрать значение только из списка. Попытки ввести в поле произвольное значение, напри­мер с помощью компонента DBGrid, блокируются.

В примере, приведенном на рис. 6.1, группа переключателей имеет заголовок Условия продажи и связана с полем Note набора данных. При перемещении на шестую запись в группе автоматически выбирается третий переключатель, имеющий название (и такое же значение) Оптом и в розницу. Если выбрать дру­гой переключатель, например первый, то в поле Note шестой записи автомати­чески занесется новое значение — Оптом.

СЗамечание ^

Новое значение поля будет зафиксировано в наборе данных и отображено другими визуальными компонентами (DBGrid и подобными) после потери фокуса группой переключателей, например, в связи с переходом к другой записи.

Доступ к отдельному переключателю можно получить через свойство itemindex типа integer, содержащее позицию (номер) переключателя, выбранного в группе в текущий момент. Это свойство используется для выбора отдельного переключателя или для определения, какой из переключателей является вы­бранным. Если свойство itemindex имеет значение -1, то не выбран ни один из переключателей.

СЗамечание ^

При программном выборе переключателя необходимо переводить набор данных в режим редактирования, а после установки нового значения поля закреплять сделан­ные изменения, например, вызовом метода Post.

Вот пример, иллюстрирующий выбор переключателя на программном уровне:

procedure TForml.ButtonlClick(Sender: TObject);

begin

Tablel.Edit;

DBRadioGroupl.Itemindex:= 1;

Tablel.Post;

end;


138


Часть II. Технологии доступа к данным


В приведенной процедуре при нажатии кнопки Buttonl в группе DBRadioGroupl выбирается второй переключатель. Предварительно набор дан­ных переводится в режим редактирования, а после переключения и смены зна­чения поля сделанные изменения сохраняются.

Отображение и выбор значения поля в списке

Чтобы отобразить поле текущей записи и выбрать этому полю новое значение,

служат СПИСКИ — КОМПОНеНТЫDBListBox, DBComboBox, DBLookupComboBox И

DBLookupListBox. По своей функциональности списки напоминают группу переключателей DBRadioGroup, однако предоставляют большие возможности. Список DBComboBox также обеспечивает возможность ввода в поле произвольного значения.

Простой и комбинированный списки

Компоненты DBListBox и DBComboBox позволяют пользователю выбирать один из строковых элементов. При выборе нужной строки простого списка DBListBox содержащееся в ней значение автоматически заносится в поле, с ко­торым связан этот список. В дополнение к этому комбинированный список DBComboBox позволяет вводить произвольное значение.


Замечание


J



Рис. 6.2. Использование простого списка

Новое значение не фиксируется в поле и, соответственно, не отображается в других визуальных компонентах, связанных с этим же набором данных. На рис. 6.2 в списке для поля unit выбрано новое значение Упаковка, однако в сетке DBGrid это не отображается. Закрепление в поле нового значения, а также отображение этого значения в других визуальных компонентах, связанных с данным полем, произойдет при переходе к другой записи.


Глава 6. Визуальные компоненты для работы с данными


139


Списки, сформированные



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: