Property Let и Get с параметрами - VB

Узнай цену своей работы

Формулировка задачи:

Доброго всем времени суток!Пожалуйста помогите разобраться. Есть свой класс clsEnter что то делает.Переменные Private. Присваиваю
Листинг программы
  1. Public Property Get DoubMin() As Double ' Возвращает значение свойства минимально допустимого числа
  2. DoubMin = dblMin
  3. End Property
  4. Public Property Let DoubMin(ByVal NewValue As Double) ' Устанавливает значение свойства минимально допустимого числа
  5. dblMin = NewValue
  6. End Property
Все нормально. Пробую так
Листинг программы
  1. Public Property Get SummaInt() As Long
  2. SummaInt = intSummaN
  3. End Property
  4. Public Property Set SummaInt(ByVal L As ListBox)
  5. Dim i As Integer, N As Long
  6. N = 0
  7. For i = 0 To L.ListCount - 1
  8. N = N + Val(Right$(L.List(i), 3))
  9. Next
  10. intSummaN = N
  11. End Property
Работает.Пробую добавить параметры
Листинг программы
  1. Public Property Get SummaDoub(Optional Y As Boolean = True) As Double
  2. SummaDoub = dblSummaS
  3. End Property
  4. Public Property Let SummaDoub(Y As Boolean, ByVal L As ListBox)
  5. Dim i As Integer, S As Double
  6. S = 0
  7. For i = 0 To L.ListCount - 1
  8. If Y Then
  9. S = S + F(Val(Left$(L.List(i), 6))) * Val(Right$(L.List(i), 3))
  10. Else
  11. S = S + Val(Left$(L.List(i), 6)) * Val(Right$(L.List(i), 3))
  12. End If
  13. Next
  14. dblSummaS = S
  15. End Property
Не соответствие типов.Пытаюсь так
Листинг программы
  1. Public Property Get SummaDoub(Optional Y As Boolean = True, Optional L As ListBox) As Double
  2. SummaDoub = dblSummaS
  3. End Property
  4. Public Property Let SummaDoub(Y As Boolean, ByVal L As ListBox, S As Double)
  5. Dim i As Integer
  6. S = 0
  7. For i = 0 To L.ListCount - 1
  8. If Y Then
  9. S = S + F(Val(Left$(L.List(i), 6))) * Val(Right$(L.List(i), 3))
  10. Else
  11. S = S + Val(Left$(L.List(i), 6)) * Val(Right$(L.List(i), 3))
  12. End If
  13. Next
  14. dblSummaS = S
  15. End Property
Пользовательский тип не определен.Пожалуйста подскажите что я не так делаю. Спасибо.

Решение задачи: «Property Let и Get с параметрами»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. ' Объявление переменной типа clsNum
  4. Dim myObj As clsNum
  5. Dim A As Long, B As Long
  6.  
  7. Private Sub Form_Click() 'смотрим свойства объекта на форме
  8. 'Если параметры Property Get не Optional пишем Obj.lngNum(A, B)
  9. Print myObj.lngNum
  10. End Sub
  11.  
  12. Private Sub Form_Load()
  13. A = 1: B = 100
  14. ' Создание объекта clsNum
  15. Set myObj = New clsNum
  16. ' Установка свойств объекта dblMin,intMax
  17. With myObj
  18. Set myObj.lngNum(0, 1) = Text1
  19. End With
  20.  
  21. End Sub
  22.  
  23. Private Sub Text1_Change()
  24. 'Установка свойств объекта TextBoxом и устанавливаем dblMin,intMax
  25. With myObj
  26. Set myObj.lngNum(A, B) = Text1
  27. End With
  28. Text2 = myObj.lngNum 'смотрим свойства объекта в TextBoxе
  29. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.545 из 5

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

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

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы