Тип данных определяемый пользователем

Тема в разделе "Lotus - Программирование", создана пользователем pbnoob, 8 июл 2010.

  1. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    День добрый!

    В (Declarations) прописан сделующий тип данных определяемый пользователем
    Код (Text):
    Public Type Card
    'Name As String
    Brand As String
    Display As String
    Color As String
    Price As String

    Choice As String
    End Type
    В библиотеке прописан следующий код
    Код (Text):
        Dim MinSelect As Integer
    Dim FirstChoiseCard() As Card
    ...
    MinSelect=10
    ...
    Redim FirstChoiseCard(MinSelect-1)
    Stop
    'Get1 ???
    Я по сути задаю некоторый массив "карточек". Как мне правильно написать заголовок функции Get1, чтобы передать в нее весь динамический массив. Буду рад получить наиболее полную информацию можно или нельзя это делать и разумно ли так поступать. (В работе с классами не силен, поэтому просьба на них не ссылать и не пинять мне этим. Буду очень признателен)
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Да дети уже должны рождаться со знаниями ООП! ))
    Учиться надо :)

    Код (LotusScript):
    function Get1(AParam as Variant)...
    If IsArray(AParam) Then ... ' вариант проверки параметра, если необходима
     
  3. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    тогда как прописать её вызов?
    Код (Text):
        Call Get1(FirstChoiseCard)
    выдает ошибку "type mismatch"
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Сделай объявление
    Код (LotusScript):
    Dim FirstChoiseCard As Variant
    Наперед, ознакомься с операциями Redim и Redim Preserve, на всякий
     
  5. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    Мне не надо variant, мне нужна работа с моим типом данных. Если это не приемлемо или не возможно, то так пожалуйста и ответьте.
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Вариант не запрещает тебе работать с его хранимым как с твоим типом, массивом твоих типов и другой инфы.

    Код (LotusScript):
    Public Type Card
    'Name As String
    Brand As String
    Display As String
    Color As String
    Price As String

    Choice As String
    End Type

    Dim MinSelect As Integer
    Dim FirstChoiseCardArray As Variant ' переменная для динам массива
    Dim FirstChoiseCard As Card ' переменная для удобной работы с элементами динам массива
    ...
    MinSelect=10
    ...
    Redim FirstChoiseCardArray (MinSelect-1)

    FirstChoiseCard.Brand = BrandValue
    FirstChoiseCard.Display = DisplayValue
    ...
    FirstChoiseCardArray(LBound(FirstChoiseCardArray)) = FirstChoiseCard
    ...
    FirstChoiseCard = FirstChoiseCardArray(LBound(FirstChoiseCardArray))
    ...
    Forall FirstChoiseCardArrayElement In FirstChoiseCardArray
    FirstChoiseCard = FirstChoiseCardArrayElement
    Print FirstChoiseCard.Brand
    End Forall
    ...
    Dim i as integer
    For i = LBound(FirstChoiseCardArray) To UBound(FirstChoiseCardArray)
    FirstChoiseCard = FirstChoiseCardArray(i)
    Print FirstChoiseCard.Brand
    Next i
     
  7. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    Спасибо!!! Буду разбираться!!!
     
Загрузка...

Поделиться этой страницей