Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие по VB_6.doc
Скачиваний:
57
Добавлен:
24.12.2018
Размер:
3.17 Mб
Скачать

События и методы сетки

EnterCell, LeaveCell – выделение и отмена выделения ячейки при щелчке мыши.

RowColChange - сохранение информации из глобальной переменной в текущей ячейке.

AddItem – вставка строк.

MsFlexGrid1.AddItem Item$[,номер строки]

Строка в переменной Item$ помещается в первую колонку новой записи. Дополнительный параметр номер строки дает возможность указывать, перед какой строкой следует добавить новую запись. По умолчанию строка вставляется после последней строки таблицы.

RemoveItem – удаление строки записи.

MsFlexGrid1. RemoveItem <номер строки>

3.4.3. Упражнения: использование массивов управляющих элементов и сетки

Задача 1. Разработать программу для добавления и удаления элементов массива управляющих элементов.

Форма для реализации этой задачи приведена на рис. 3.14. Поместим на форму один элемент управления TextBox – Text1 и присвоим свойству Index этого элемента значение 0. Поместим на форму также две кнопки для добавления и удаления элементов массива.

Текст программы.

Private Sub Command1_Click()

Dim i As Single

i = Text1().Count

Load Text1(i)

Text1(i).Text = "Текст" & Str$(i)

Text1(i).Top = Text1(i - 1).Top + Text1(0).Height

Text1(i).Visible = True

End Sub

Private Sub Command2_Click()

Dim i As Single

i = Text1().Count - 1

If i > 0 Then

Unload Text1(i)

End If

End Sub

Задача 2. Протабулировать функцию y=sin(x) с использованием массива элементов управления.

Порядок работы.

1. Запустите программу Visual Basic.

2. Откройте новый проект.

3.Разработайте эскиз формы (рис.3.15).

  1. Опишите свойства элементов управления (табл. 3.8).

  2. Создайте на форме массив элементов управления типа Label для вывода надписей Хнач, Хкон, dX:

  • поместите на форму Надпись. Установите ее свойства. Свойству Index присвойте значение 0;

  • скопируйте Надпись и вставьте ее на форму два раза. Просмотрите значения свойства Index у вставленных элементов. (1,2);

Таблица3.8

Описание свойств элементов формы

Тип элемента

Элемент

Свойство

Значение

Форма

Form1

Name

frmMassivUpravl

Caption

Табулирование функций

Надпись

Label(0)

Name

lblLabel1

Caption

Хнач=

Index

0

Label(1)

Name

lblLabel1

Caption

Yнач=

Index

1

Label(2)

Name

lblLabel1

Caption

dX=

Index

2

Текстовое поле

Text1(0)

Name

txtText1

Caption

0

Index

0

Text1(1)

Name

txtText1

Caption

0

Index

1

Text1(2)

Name

txtText1

Caption

0

Index

2

Label2(0)

Name

lblArgument

Caption

X

Aligment

2

Index

0

Enabled

False

Label3(0)

Name

lblFunction

Caption

Y

Aligment

3

Index

0

Enabled

False

Командная кнопка

Command1

Name

cmdCalc

Caption

Вычисление

Command2

Name

cmdExit

Caption

Выход

6. Создайте массив элементов управления типа TextBox для ввода значений Xнач, Хкон, dX:

  • поместите на форму Текстовое поле. Установить его свойства. Свойству Index присвойте значение 0;

  • скопируйте Текстовое поле и вставьте его на форму два раза. Просмотрите значения свойства Index у вставленных элементов. (1,2);

7. Установите на форму две Надписи, присвойте им имена, установите значение свойства Index у обоих элементов равным нулю, измените цвет полей и присвойте свойству Caption этих полей значение “X” и “Y” соответственно.

8. Создайте две кнопки: “Вычисление” и “Выход”.

9. Напишите тексты программы.

Dim x As Single, y As Single, dx As Single

-------------------------------------------------------------

Private Sub cmdCalc_Click()

Dim i As Integer

Xnach = Val(txtText1(0).Text)

Xkon = Val(txtText1(1).Text)

dx = Val(txtText1(2).Text)

n = Int((Xkon - Xnach) / dx) + 1

x = Xnach

For i = 1 To n

' Загружаем элементы управления

Load lblArgument(i): Load lblFunction(i)

' Вычисляем значение функции

y = Sin(x)

' Настраиваем параметры добавленных элементов управления

lblLabel2(i).Top = lblLabel2(i - 1).Top + lblLabel2(0).Height

lblLabel3(i).Top = lblLabel3(i - 1).Top + lblLabel3(0).Height

‘ при использовании функции Format значение аргумента не должно

‘ быть равно нулю, иначе возникает ошибка периода выполнения

If x <> 0 Then

lblArgument(i).Caption = Str$(Format(x, "####.##"))

Else

lblArgument(i).Caption = Str$(x)

End If

If y <> 0 Then

lblFunction(i).Caption = Str$(Format(y, "####.##"))

Else

lblFunction(i).Caption = Str$(y)

End If

lblArgument Visible = True: lblFunction(i).Visible = True

x = x + dx

Next i

End Sub

------------------------------------------------------------------------------------------------

Private Sub cmdExit_Click()

Unload Me

End Sub

  1. Сохраните программу на диске.

  2. Проведите отладку программы.

  3. Создайте исполняемый файл и запустите его для проверки работы.

Задача3. Выполнить табулирование функции с использованием сетки (рис.3.16).

Порядок работы.

1. Выполните пункты 1-6 задания1.

2. Добавьте на панель инстру-ментов сетку MSFlexGrid командой Project\Components\ Microsoft Flex Grid Control 5.0.

3. Поместите на форму сетку MSFlexGrid. Установите начальное число строк равное 2 и начальное число колонок равное 3.

4. Напишите текст программы

Dim Xn As Single, Xk As Single, Dx As Single

Dim X As Single, Y As Single, N As Integer

----------------------------------------------------------------

Private Sub Command1_Click()

Xn = Val(Text1(0).Text)

Xk = Val(Text1(1).Text)

Dx = Val(Text1(2).Text)

Cls

N = Int((Xk - Xn) / Dx) + 1

Grid1.Rows = N + 1

For I = 1 To N

Y = Sin(X)

Grid1.Row = I

Grid1.Col = 0

Grid1.ColAlignment(0) = 2

Grid1.Text = Str$(I)

Grid1.Col = 1

If X <> 0 Then

Grid1.Text = Str$(Format(X, "#.##"))

Else

Grid1.Text = Str$(X)

End If

Grid1.ColAlignment(1) = 2

Grid1.Col = 2

If X <> 0 Then

Grid1.Text = Str$(Format(Y, "#.##"))

Else

Grid1.Text = Str$(Y)

End If

Grid1.ColAlignment(2) = 2

X = X + Dx

Next I

End Sub

--------------------------------------------------------------------------

Private Sub Command2_Click()

Unload Me

End Sub

--------------------------------------------------------------------------

Private Sub Form_Load()

Grid1.Row = 0

Grid1.Col = 1

Grid1.Text = "X"

Grid1.ColAlignment(1) = 2

Grid1.Col = 2

Grid1.Text = "Y"

Grid1.ColAlignment(2) = 2

End Sub

  1. Выполните работу согласно п. 10 - 12 задания 1.