Пользовательский тип данных в качестве возвращаемого значения свойством - VB
Формулировка задачи:
Добрый день. Подскажите в чем проблема. Есть процедура, которая должна возвращать пользовательский тип данных, но компилятор выдает ошибку с сообщением:
Compile error:
Only public user defined types in public object modules can be used as parametrs or return types for public procedures of class modules or as fields of public user defined types.
При этом текст процедуры, которая содержится в модуле класса:
А непосредственно возвращаемый пользовательский тип данных объявлен в стандартном модуле:
Можно, конечно, передавать не инициализированный udt в качестве аргумента, чтобы процедура его модифицировала, но как-то не изящно.
Листинг программы
- Public Property Get Item(ByVal Index As Long) As StdModule.TypeOfCollection
- Select Case mlngPositionInCollection
- Case Is = 0
- VBA.Information.Err.Raise conErrCollectionIsEmpty, "clsCollection", _
- "Êîëëåêöèÿ Г*ГҐ ñîäåðæèò ýëåìåГ*òîâ."
- Case Is < Index - 1
- VBA.Information.Err.Raise conErrIndexDoesntExist, "clsCollection", _
- "Г€Г*äåêñ ГўГ*ГҐ äèГ*ïîçîГ*Г*."
- End Select
- If Index <= 0 Then VBA.Information.Err.Raise conErrIndexDoesntExist, "clsCollection", _
- "Г€Г*äåêñ ГўГ*ГҐ äèГ*ïîçîГ*Г*."
- Item.TextBoxName = mudtArrayOfData(Index - 1).TextBoxName
- Item.TextColor = mudtArrayOfData(Index - 1).TextColor
- End Property
Листинг программы
- Public Type TypeOfCollection
- TextBoxName As VB.TextBox
- TextColor As Long
- End Type
Решение задачи: «Пользовательский тип данных в качестве возвращаемого значения свойством»
textual
Листинг программы
- Friend Property Get Item(ByVal Index As Long) As StdModule.TypeOfCollection
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д