Создание и работа класса - 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

Код к задаче: «Создание и работа класса - VB»

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

7   голосов, оценка 4.286 из 5


СОХРАНИТЬ ССЫЛКУ