Свойство Value

Свойство Value показывает текущее состояние данного элемента управления (кОнтрола). Довольно сложное свойство.

При исполнении программы в это свойство попадает информация, вводимая пользователем. Если это текст, который оператор впечатывает в текстбокс, в свойстве Value будет храниться этот текст. Если оператор устанавливает галочку в чекбоксе, в свойстве Value появляется логическое значение .t., если нажимает на какую-то кнопку из группы, в нем появляется номер этой кнопки.


Рассмотрим самый простой случай, не с таблицей, а с переменной, просто чтобы не путаться строками и столбцами.

Обычно кОнтрол связан с ячейкой таблицы, или какой-нибудь переменой, Связан он свойством ControlSource, где хранится имя переменной. Только имя, значение переменой хранится... в самой переменной. То есть где-то совершенно в другом месте.

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

Казаться, что содержимое этой переменной должно в точности совпадать с содержимым кОнтрола. Это не то чтобы неверно, просто так бывает не всегда.
Если вы изменили, к примеру, текст в текстбоксе, но еще не покинули его, то значение в свойстве Value будет новым, а в переменной - старым. Какое это имеет значение? Для простой формы и простой задачи - никакого. Но свойство Value редко используется в дизайнере форм, оно предназначено для включения в программный код, для принятия решения в процессе ввода, "на лету". И, если действие должно предприниматься до того, как курсор покинул кОнтрол, при использовании переменной может получится один результат, а при использовании свойства Value - другой.

Интересно, что Value можно использовать и в том случае, если кОнтрол вообще ни к чему не привязан, то есть ControlSource у него пустое. Информация считывается из кОнтрола, и используется непосредственно, без баз и переменных.


Разбираемся дальше.

Текстбокс, эдитбокс, чекбокс, кнопка, группа кнопок - простые элементы управления, в них человек вводит данные напрямую. Собственного источника данных они не имеют.

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

Поэтому, при работе с текстбоксом и комбобоксом, свойство Value работает по-разному. В случае, если нет источника данных, в Value находятся данные, а если источник данных есть, туда попадает лишь тип источника данных - Character, Integer или Numeric.

 
К оглавлению