Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

9. Пример динамического способа формирования объектов на форме vb.

пример:Динамически сформ-ть объекты на форме VB/

Dim Text1 As TextBox,Text2 As TextBox,Text3 As TextBox

'объекты Text1 и Text2,Text3 не будут сод-ть события

Dim WithEvens Command1 As CommandButton

Private Sub Form_Load()

Me.ScaleMode=3 Режим-пиксели для объектов формы

End Sub

Private Sub Form_Unload(Cancel As Integer)

Set Command1=Nothing

Set Text1=Nothing

Set Text2=Nothing

Set Text3=Nothing

End Sub

Private Sub Form_Activate()

MsgBox "мы сформировали дин-кую форму в среде VB"

End Sub

Private Sub Form_Initialize()

Me.Width=4000 для формы размеры задаются в твипах

Me.Height=2600 при разрешении экрана 1280*1024 точек

Set Text1=Controls.Add("VB.TextBox","T1",Form1)

Set Text2=Controls.Add("VB.TextBox","T2",Form1)

Set Text3=Controls.Add("VB.TextBox","T3",Form1)

Set Command1=Controls.Add ("VB.CommandButton","Cmd1",Form1)

Text1.Visible=True

Text2.Visible=True

Text3.Visible=True

Command.Visible=True

Command1.FontBold=True

Text1.FontBold=True

Text2.FontBold=True

Text3.FontBold=True

Text1.Left=12 Размеры эл-ов на форме в пикселях

Text1.Top=6

Text1.Width=270

Text1.Height=18

Text2.Left=12

Text2.Top=36

Text2.Width=270

Text2.Height=18

Text3.Left=12

Text3.Top=66

Text3.Width=270

Text3.Height=18

Command1.Left=45 Command1.Top=100

Command1.Width=200

Command1.Height=40

Command1.Caption="Вычислить выражение"

End Sub

Private Sub Command1_Click()

Dim a As Double,b As Double,c As Double

On Error GoTo 100

a=Text1

b=Text2 c=a*b

Text3=c

Exit Sub

100

MsgBox "Вы уверены,что ввели значения в текстовые поля?",vbQuestion,_"Динамическая форма" End Sub

10)Пример работы с коллекцией объектов, свойствами и методами объектов.

Пример 59. Объявить событие в модуле класса, а запрограммировать его в модуле формы.

 

Пусть событие (назовем его MTS) имеет два параметра. Первый – числовой, второй – логический. Событие будет реализовываться в методе Long1. Выполните следующие действия.

  • Создайте новый проект с шаблоном Standard EXE.

  • С помощью команды Project\Add Class Module добавьте модуль класса с именем Class1 в проект, используя шаблон Class Module на закладке New.

  • Поместите в него следующий код.

Public Event MTS(ByVal Percent As Single, ByRef Cancel As Boolean)

Public Sub Long1(ByVal f As Single, c As Boolean)

RaiseEvent MTS(f, c) 'Вызов события MTS с двумя параметрами

End Sub

 

  • Теперь добавьте в область GD окна Code модуля формы следующий код:

 

Private WithEvents mW As Class1, nCancel As Boolean, r As Single

'Ключевое слово WithEvents означает, что объект mW содержит события

Private Sub Command1_Click()

nCancel = False

r = Rnd

Set mW = New Class1 'Создание нового объекта на основе класса

Call mW.Long1(r, nCancel) 'Обращение к методу Long1

Text2 = nCancel 'Выводим значение, возвращаемое из события

Set mW = Nothing

End Sub

Private Sub Form_Load()

Text1 = Format(r, "0 %")

Text2 = ""

End Sub

Private Sub mW_MTS(ByVal Percent As Single, _

Cancel As Boolean)

m% = CInt(100 * Percent)

Text1 = m & "%"

If m >= 50 Then Cancel = True

End Sub