Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ввод данных с клавиатуры




Запись данных в оперативную память

Запись данных в оперативную память является одной из самых распространенных при составлении программ. Она встречается при установке свойств объектов в ходе работы программы и при записи данных по адресам, определенным пользователем. Эти операции осуществляются оператором присваивания. Учитывая, что данные записываются в свойства объектов, а также в качестве значений переменных, констант и элементов массива, можно предложить несколько форм оператора присваивания (табл. 4.3).

Таблица 4.3

Форматы оператора присваивания

Выполняемая операция Формат оператора присваивания и пример
Установка свойства объекта Имя_объекта.Имя_свойства = значение Пример: TB.Text = "Это содержимое свойства Text"
Запись значения переменной из модуля Имя_модуля.Имя_переменной = значение Пример: OpDan.A = 10*d
Запись значения переменной, описан-ной внутри блока Имя_переменной = значение Пример: Summ = 400
Запись значения в константу Const Имя_константы = значение Пример: Const Pi = 3.14159
Запись значения в элемент массива Имя_массива(список_индексов_элемента)=значение Примеры: A(10) = 25: B(27, 15) = 257
Инициализация массива данных типа Variant (зависит от контекста) Public (или private или dim Имя_массива ... Имя_массива = array (значение_1,... значение_n) Пример: dim f:...: f = array (1,2,3,4,5)
Запись данных в поля данных сложного типа Имя_переменной.Имя_поля=значениеили With Имя_переменной .Имя_поля_1=значение_1 ... End With Примеры: Stud.Name="Михаил" With Stud .Name = "Михаил":.Fam = "Щеглов" End With

Из табл. 4.3 видно, что в любом случае оператор присваивания состоит из правой и левой частей, разделенных символом "=". В левой части стоит символьный эквивалент адреса (т.е.) имя данного, в правой части – конкретное значение данного или вычисляемое выражение подходящего типа.

Важнейшей операцией, с которой приходится встречаться программисту, является ввод данных с клавиатуры. Для этой цели в среде Visual Basic существуют объекты Text Box, Flex Grid и InputBox.

Наиболее просто организовать ввод данных с клавиатуры посредством объекта Text Box (табл. 4.4).

Таблица 4.4

Организация ввода данных посредством объекта Text Box

Вид окна Комментарий
  В простейшем варианте используются следующие свойства объекта: Name ­– регистрирует объект в программе, Text – хранит символы, вводимые с клавиатуры
  В многострочном варианте приходится работать со свойствами: Name – регистрирует объект в программе, Text – хранит символы, вводимые с клавиатуры, MultyLine – разрешает наличие многострочного ввода, ScrollBars – управляет наличием полос прокрутки окна
При организации ввода пароля используются свойства: Name ­– регистрирует объект в программе, Text – хранит символы, вводимые с клавиатуры, PasswordChar – определяет символ, показываемый в окне

В свойство MultyLine при проектировании окна ввода данных средой автоматически записывается значение False, запрещающее многострочность. Для создания многострочного окна в свойство MultyLine нужно записать значение True.

Свойства ScrollBars имеет четыре значения:

· 0 – нет полос прокрутки,

· 1 – есть горизонтальная полоса,

· 2 – есть вертикальная полоса,

· 3 – есть обе полосы.

При организации ввода данных через объект Text Box минимально приходится пользоваться свойствами Name (для регистрации объекта в программе) и Text, которое хранит комбинацию символов, введенных с клавиатуры Дополнительными средствами управления окном являются свойства: MultyLine, ScrollBars, PassWordChar, Font, Alignment, Visible, Enabled и др. (табл. 2.5)

При вводе множества данных, которые можно оформить в виде таблицы, прекрасные результаты можно получить, используя объект Flex Grid. При решении этой задачи приходится решать три проблемы: управление внешним видом таблицы, ввод данных в ячейки и защиту данных в некоторых ячейках таблицы, например, в крайнем правом столбце или в нижней строке.

Существует два варианта организации ввода данных в таблицу: через вспомогательное окно Text Box и прямой ввод данных в ячейки таблицы
(табл. 4.5, кнопки 1 и 2 на рисунках в таблице можно игнорировать). В обоих случаях выбор ячейки для ввода данных осуществляется щелчком мыши и клавишами "стрелка влево", "стрелка вправо", "стрелка вверх", "стрелка вниз". Варианты текста фрагмента программы, управляющей объектом Flex Grid, приведены в табл. 4.5.

Таблица 4.5

Организация ввода данных через объект FlexGrid

Вид формы Комментарий
Sub MSFG1_KeyPress(KeyAscii As Integer) Dim i As Integer: Dim j As Integer Dim s As String: Dim s1 As String * 1 i = MSFG1.Row: j = MSFG1.Col s = MSFG1.TextMatrix(i, j) s1 = Chr(KeyAscii): s = s + s1 MSFG1.TextMatrix(i, j) = s End Sub
  Private Sub MSFG2_GotFocus() TB.SetFocus End Sub Private Sub MSFG2_RowColChange() Dim i As Integer: Dim j As Integer i = MSFG2.Row: j = MSFG2.Col TB.Text = MSFG2.TextMatrix(i, j) TB.SetFocus End Sub Private Sub TB_Change() Dim i As Integer: Dim j As Integer i = MSFG2.Row: j = MSFG2.Col MSFG2.TextMatrix(i, j) = TB.Text End Sub

Прямой ввод данных в клетку таблицы осуществлен в обработчике события KeyPress. Переменные i,j,s,s1 введены для придания тексту кода программы более компактного вида. Код введенного символа попадает через буфер клавиатуры в переменную KeyAscii. Далее этот код определяет букву, записываемую в переменную s1. Затем к содержимому активной ячейки приписывается буква, полученная из буфера клавиатуры. Недостатком приведенного фрагмента является неспособность обработать нажатие клавишей Enter, BackSpace и Del часто использующихся для редактирования данных. Усовершенствованный вариант кода приведен на рис. 4.3. Изменения выделены жирным шрифтом.

 

Private Sub MSFG1_KeyPress(KeyAscii As Integer)

Dim i As Integer: Dim j As Integer

Dim s As String: Dim s1 As String * 1

i = MSFG1.Row: j = MSFG1.Col

s = MSFG1.TextMatrix(i, j)

s1 = Chr(KeyAscii):

if s1=chr(13) then

'вставить операторы, обрабатывающие нажатие Enter

elseif s1=chr(8) then

'оператор, обрабатывающий нажатие BackSpace

'выполняет усечение строки s справа на 1 символ

s = left(s, len(s)-1)




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 638; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.