Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9.1 - МР по изучению дисциплины.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Лабораторная работа № 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

Пользователь может изменять и высоту строк, и ширину колонок.