Создание и работа класса - VB
Формулировка задачи:
Доброго дня или ночи знатокам! Помогите в проблеме!
Я новичок в ООП и VB и хотелось бы понять принцип работы классов на примере
статьи, которые я нашел в сети(http://www.codenet.ru/progr/vbasic/vb_objects.php ), где объясняется суть класса на простом примере, который приведен ниже. Я постарался в точности воспроизвести пример из статьи (за исключением некоторых своих безобидных вставок в целя трассировки)и при его прогоне выплывает ошибка(метод или член данных не найден), т.е. в Form2 этого свойства нет, а почему? Я где то ошибся или ошибка в статье? Спасибо!
------------------------ Form1 -----------------------
Листинг программы
- Private Sub Form_Initialize()
- MsgBox "Initialize1"
- End Sub
- Private Sub Form_Load()
- Dim i As Integer
- Dim obj As New MyFirstClass
- obj.A = 10
- i = obj.A
- obj.AA
- i = obj.A
- j = obj.AAA(i)
- End Sub
- ‘Вторая форма, и на ней 2 кнопки, и код
- ------------------------ Form2 -----------------------
- Option Explicit
- Dim obj As New Form1
- Private Sub cmdCenter_Click()
- obj.Center = True
- 'obj. = True
- End Sub
- Private Sub cmdNonCenter_Click()
- obj.Center = False
- End Sub
- Private Sub Form_Initialize()
- MsgBox "Initialize2"
- End Sub
- Private Sub Form_Load()
- obj.Show
- obj.Left = 500
- obj.Top = 1000
- End Sub
- ------------------------ MyFirstClass -----------------------
- Public A As Integer
- Dim MyTop As Long
- Dim MyLeft As Long
- Dim blnCenter As Boolean
- Public Sub AA()
- MsgBox "aa"
- End Sub
- Public Function AAA(p As Integer) As Integer
- MsgBox "aaa"
- AAA = 5 + p
- End Function
- Public Property Get Center() As Boolean
- Center = blnCenter
- End Property
- Public Property Let Center(ByVal vNewValue As Boolean)
- blnCenter = vNewValue
- If blnCenter Then
- MyTop = Me.Top
- MyLeft = Me.Left
- Me.Top = (Screen.Height - Me.Height) / 2
- Me.Left = (Screen.Width - Me.Width) / 2
- Else
- Me.Top = MyTop
- Me.Left = MyLeft
- End If
- End Property
Решение задачи: «Создание и работа класса»
textual
Листинг программы
- Option Explicit
- Private isCenter As Boolean
- Public Property Get Center() As Boolean
- bCenter = isCenter
- End Property
- Public Property Let Center(ByVal bCenter As Boolean)
- isCenter = bCenter
- If bCenter Then
- Top = (Screen.Height - Me.Height) \ 2
- Left = (Screen.Width - Me.Width) \ 2
- End If
- End Property
- Private Sub Form_Load()
- Me.Center = True
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д