- •Методические рекомендации по изучению дисциплины «визуальное программирование»
- •Лабораторная работа №2 тема: реализация задач обработки строковых данных.
- •Лабораторная работа №3 тема: программная реализация задач с использованием типа даты и времени
- •Лабораторная работа №4 тема: программирование задач с использованием массива записи
- •Лабораторная работа № 5 тема: организация стека. Рекурсивные алгоритмы
- •Перебор возможных решений
- •Лабораторная работа № 6 тема: составление алгоритмов решения задач с использованием файлов последовательного доступа
- •Лабораторная работа № 7 тема: программирование задач с использованием компонентов treeview, listview
- •Лабораторная работа № 8 тема: использование компонента flexgreed для решения задач
- •Лабораторная работа №9 тема: решение задач с использованием графических построений
- •Лабораторная работа № 10 тема: разработка простейших игровых приложений
- •Методические указания по срсп
Лабораторная работа № 8 тема: использование компонента flexgreed для решения задач
Цель работы: Изучение функций для графических построений
План работы: Разработать алгоритм, используя алгоритмы цикла и ветвления
Теоретический материал:
MSFlexGrid контрол используется для вывода табличных данных. Количество строк и колонок указывается свойствами, соответственно, Rows и Cols. Отсчёт строк и колонок начинается с 0. Текущую строку указывает свойство Row, а текущую колонку свойство Col.
Debug.Print "Всего строк " & MSFlexGrid.RowsDebug.Print "Всего колонок " & MSFlexGrid.Cols
Debug.Print "Текущая строка " & MSFlexGrid.Row
Debug.Print "Текущая колонка " & MSFlexGrid.Col
Доступ к содержимому текущей ячейки (которая выделена пользователем) осуществляется через свойство Text.
Debug.Print MSFlexGrid.Text
MSFlexGrid.Text = "Привет!"
Для доступа к содержимому произвольной ячейки используется свойство TextMatrix. Оно имеет 2 параметра – номер строки и номер столбца.
Также можно добавлять строки с помощью метода AddItem. MSFlexGrid.AddItem "Строка"
Разделителем колонок служит vbTab.
MSFlexGrid.AddItem "Строка1" & vbTab & "Строка2" & vbTab & "Строка3" Удалять строки можно, используя метод RemoveItem. Первый параметр - index указывает, какую строку нужно удалить. Для первой строки index = 0. MSFlexGrid.RemoveItem 2
Форматирование текста
В ячейках может содержаться текст, изображение, а может и то и другое. В MSFlexGrid возможно форматирование текста: выделение курсивом, подчёркиванием, полужирным, изменением цвета фона и текста, выравнивание текста, изменение шрифта и размера шрифта, стиль текста и др.
Свойства, служащие для форматирования текста ячеек представлены в таблице.
Свойство |
Тип данных |
Значение по умолчанию |
Описание |
CellAlignment |
Integer |
0 |
Выравнивание содержимого ячейки. |
CellBackColor |
OLE_Color |
0 |
Цвет фона ячейки. |
CellFontBold |
Boolean |
False |
Задаёт жирное начертание. |
CellFontItalic |
Boolean |
False |
Задаёт начертание курсивом. |
CellFontName |
String |
MS Sans Serif |
Название шрифта. |
CellFontSize |
Single |
8,25 |
Размер шрифта. |
CellFontStrikeThrough |
Boolean |
False |
Задаёт перечёркнутое начертание. |
CellFontUnderline |
Boolean |
False |
Задает подчеркнутое начертание. |
CellFontWidth |
Single |
0 |
Ширина шрифта в точках. |
CellFontColor |
OLE_Color |
0 |
Цвет шрифта ячейки. |
Все эти свойства не доступны в Design time. Свойства применяются к текущей ячейке.
Свойство CellAlignment может принимать значение одной из констант:
Константа |
Значение |
Описание |
flexAlignLeftTop |
0 |
Слева сверху. |
flexAlignLeftCenter |
1 |
Слева в центре. Это значение по умолчанию для ячеек, содержащих текст. |
flexAlignLeftBottom |
2 |
Слева снизу. |
flexAlignCenterTop |
3 |
В центре сверху. |
flexAlignCenterCenter |
4 |
В центре ячейки. |
flexAlignCenterBottom |
5 |
В центре снизу. |
flexAlignRightTop |
6 |
Справа сверху. |
flexAlignRightCenter |
7 |
Справа в центре. Это значение по умолчанию для ячеек, содержащих числа. |
flexAlignRightBottom |
8 |
Справа снизу. |
flexAlignGeneral |
9 |
Общее выравнивание. Слева в центре, если ячейка содержит текст и справа в центре, если ячейка содержит число. |
Вставка изображения в ячейку
В ячейку можно вставлять изображения. Для этого служит свойство CellPicture типа Picture. Можно вставлять изображения любого типа, с которыми умеет работать VB. Это Bitmap (bmp), Icon (ico), Windows Metafile (wmf), JPEG (jpg) и GIF (gif). Если вставить анимированное GIF изображение, то показывается только первый кадр. Изображение можно загрузить из файла, используя функцию LoadPicture или из другого объекта, например Picture или Image.
Set MSFlexGrid.CellPicture = LoadPicture ("C:\Windows\Облака.bmp")
Set MSFlexGrid.CellPicture = Image1.Picture
Изображение также можно выравнивать. Для этого служит свойство CellPictureAlignment. Оно может принимать значение одной из следующих констант:
flexAlignLeftTop = 0
flexAlignLeftCenter = 1
flexAlignLeftBottom = 2
flexAlignCenterTop = 3
flexAlignCenterCenter = 4
flexAlignCenterBottom = 5
flexAlignRightTop = 6
flexAlignRightCenter = 7
flexAlignRightBottom = 8
Что означают эти константы, думаю, понятно из их названия.
Заголовки строк и колонок
Заголовки строк и колонок в MSFlexGrid представляют собой нескроллируемую строку/колонку. Наличие заголовков строк и колонок устанавливается свойствами FixedRows и FixedCols соответственно. Содержимое заголовков определяется свойством FormatString. Следующий пример показывает, как установить заголовки колонок:
Dim s As String
s = "<ID|Name|Email|Order"
MSFlexGrid.FormatString = s
Заголовки строк определяются похожим образом:
Dim s As String
s = ";Первый|Второй|Третий|Четвёртый"
MSFlexGrid.FormatString = s
Цвет фона всех заголовков можно установить свойством BackColorFixed. Цвет шрифта заголовков определяет свойство ForeColorFixed.
Заголовок - это группа ячеек, так что к нему применимы все те же способы форматирования содержимого, что и для других ячеек.
Ширина, высота строк и колонок
Ширина колонок устанавливается свойством ColWidth. Единственный параметр index указывает индекс колонки, ширину которой получаем или устанавливаем. Свойство имеет тип Long и устанавливается в твипах.
MsgBox MSFlexGrid.ColWidth (2)
MSFlexGrid.ColWidth (2) = 1500
Высота колонок определяется свойством RowHeight, также имеющим тип Long и измеряющимся в твипах. В качестве параметра задаётся индекс строки.
MsgBox MSFlexGrid.RowHeight (34)
MSFlexGrid.RowHeight (34) = 200
Также можно установить минимальную высоту строк. Это делается с помощью свойства RowHeightMin.
Пользователь и сам может изменять высоту строк и ширину колонок. Но для этого нужно установить соответствующее значение свойства AllowUserResizing. Это свойство имеет тип AllowUserResizeSettings и может принимать значение одной из следующих констант:
Константа |
Значение |
Описание |
flexResizeNone |
0 |
Пользователь не может изменять ни высоту строк, ни ширину колонок. Это значение устанавливается по умолчанию. |
flexResizeColumns |
1 |
Пользователь может изменять только ширину колонок. |
flexResizeRows |
2 |
Пользователь может изменять только высоту строк. |
flexResizeBoth |
3 |
Пользователь может изменять и высоту строк, и ширину колонок. |
