Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Вывод данных и сообщений на экран




End if

Else

s = s + s1

MSFG1.TextMatrix(i, j) = s

End Sub

Рис. 4.3. Усовершенствованный вариант прямого ввода данных
в клетку таблицы

Второй вариант ввода данных использует три обработчика события:

· GotFocus – для активизации вспомогательного окна TB при запуске формы;

· RowColChange – для записи во вспомогательное окно содержимого выбранной клетки и активизации вспомогательного окна;

· TB.Change – для записи в выбранную клетку содержимого окна TB при каждом нажатии клавиши.

Обработчик GotFocus вызывается при каждой активизации объекта Flex Grid, в том числе и при запуске формы. Оператор TB.SetFocus активизирует вспомогательное окно.

Обработчик RowColChange вызывается при каждом выборе активной клетки (независимо от способа выбора).

Обработчик TB.Change вызывается при каждом изменении содержимого свойства Text окна TB.

Управление внешним видом формы возможно в двух вариантах: установкой свойства FormatString и установкой свойств ColWidth и TextMatrix. Эти три свойства следует определять до вывода на экран формы или до появления объекта на экране, например в методе Form_Load(). Два варианта текста метода Form_Load() приведены на рис. 4.4. В обоих вариантах на стадии проектирования формы установлены свойства Cols, Rows, FixedCols=1, FixedRows=1.

В операторе s = "|Колонка 2|Колонка 3" (рис 4.4,а) первые кавычки создают клетку, стоящую в левом верхнем углу, последующие символы "|"

создают первые ячейки столбцов таблицы, надписи между ними создают заголовки столбцов и определяют их ширину. Следующий оператор
s = s + ";Кол_1|Стр1|Стр2|Стр3" дополняет описание столбцов описанием строк. Символ ";" отделяет описание столбцов от описания строк и открывает клетку, стоящую в левом верхнем углу, надпись "Кол_1" определяет заголовок верхней строки. Последующие символы "|" создают последующие строки, а надписи между этими символами определяют заголовки строк. Попытка построить первый оператор в виде s = "Кол1|Колонка 2|Колонка 3" успеха иметь не будет, т.к. надпись Кол_1 перекроет надпись Кол1.

Во втором варианте (рис. 4.4,б) ширина колонок и надписи в клетках определяются непосредственно за счет установки свойств ColWidth и TextMatrix. Например, MSFG2.ColWidth(0) = 700 и MSFG2.TextMatrix(0, 0) = "Кол_1" определяют соответственно ширину нулевого столбца и надпись в клетке, стоящей в нулевой строке и нулевом столбце.

Private Sub Form_Load() 'Инициализация таблицы на 'форме Демо Flex Grid ' прямой ввод Dim s As String s = "|Колонка 2|Колонка 3" s = s + ";Кол_1|Стр1|Стр2|Стр3" MSFG1.FormatString = s End Sub   Private Sub Form_Load() 'Инициализация таблицы на форме 'Демо Flex Grid косвенный ввод MSFG2.ColWidth(0) = 700 MSFG2.TextMatrix(0, 0) = "Кол_1" MSFG2.ColWidth(1) = 1000 MSFG2.TextMatrix(0, 1) = "Колонка 2" MSFG2.ColWidth(2) = 1000 MSFG2.TextMatrix(0, 2) = "Колонка 3" MSFG2.TextMatrix(1, 0) = "Стр1" MSFG2.TextMatrix(2, 0) = "Стр2" End Sub
а) б)
Рис. 4.4. Управления видом объекта Flex Grid свойством FormatString (а) и свойствами ColWidth и TextMatrix (б)

Проблема защиты клеток от ввода данных с клавиатуры решается очень просто с использованием обработчика события RowColChange(). В этом обработчике считываются значения свойств Row и Col, и, как только они приобретают запрещенные значения, тут же простыми операторами присваивания устанавливают разрешенные значения.

Иногда встречается задача отслеживания нажатия какой-либо клавиши при вводе данных через окно Text Box или через ячейку таблицы Flex Grid. В частности, для обработки нажатия клавишей Enter или BackSpace. Нажатие BackSpace всегда истолковывается как команда удаления последнего символа. Нажатие Enter можно истолковать как окончание ввода данных в окно или в клетку таблицы. Реакция программы на нажатие клавиши Enter задается программистом. Например, выбрать следующую активную ячейку таблицы. Эта задача решается применением обработчика события KeyPress соответствующего объекта. Пример такого отслеживания приведен на рис. 4.3.

 

Ввод данных с помощью объекта MS Flex Grid можно выполнить непосредственно в ячейку таблицы или через вспомогательное окно TextBox В первом случае необходимо использовать обработчик события KeyPress(KeyAscii) и накапливать в свойстве TextMatrix(i,j) по формуле: TextMatrix(i,j)= TextMatrix(i,j)+KeyAscii При этом следует организовать обработку нажатия клавишей Enter (KeyAscii=13) и BackSpace (KeyAscii=8) оператором ветвления программы if-end if. Нажатие первой клавиши можно истолковать как команду окончания ввода данных в ячейку, нажатие второй – как команду "Забой введенного символа" Во втором случае ввод данных в ячейку выполняется в обработчике Change() объекта TextBox простым оператором присваивания. Дополнительно приходится использовать обработчик события RowColChange() объекта FlexGrid для переписи содержимого редактируемой клетки в текстовое окно. Кроме того, приходится активизировать объект TextBox методом SetFocus() в обработчиках событий GotFocus() и RowColChange() объекта FlexGrid Минимальное управление внешним видом объекта FlexGrid производится установкой двух свойств TextMatrix() и ColWidth() или одного свойства FormatString Защита клеток таблицы осуществляется в обработчике RowColChange() отслеживанием и принудительной установкой свойств Row и Col

Ввод данных посредством объекта InputBox показан на рис. 4.5, из которого ясен смысл первых трех параметров. Параметры x и y задают координаты левого верхнего угла окна в твипсах (точках), help – имя файла справки, num – номер контекстной помощи.

а) Dim i As String i = InputBox("Приглашение", "Заголовок", "по умолчанию", x,y) или i = InputBox("Приглашение", "Заголовок", "по умолчанию", x,y,help,num) б)
Рис. 4.5. Вид объекта InputBox (а) и текст программы (б)

Вывод информации на экран выполняется с помощью объектов Label, Text Box, Flex Grid и функции MsgBox. В первых трех случаях вывод осуществляется простым оператором присваивания значений соответствующим свойствам.

Пример. Пусть имеются три объекта Label, Text Box и Flex Grid размером 2х2 с именами LB, TB и FG соответственно. Вывод информации с помощью этих объектов осуществляется программой, приведенной на рис. 4.6.

LB.Caption = "Вывод информации объектом метка"

TB.Text = "Вывод информации объектом Text Box"

FG.TextMatrix(0,0) = "клетка 00" 'вывод

FG.TextMatrix(0,1) = "клетка 01" 'информации

FG.TextMatrix(1,0) = "клетка 10" 'объектом

FG.TextMatrix(1,1) = "клетка 11" 'FlexGrid

Рис. 4.6. Примеры вывода информации объектами Label, Text Box и Flex Grid




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


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


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



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




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