1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

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

  1. pbnoob

    pbnoob Well-Known Member

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

    В (Declarations) прописан сделующий тип данных определяемый пользователем
    Код:
    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 FirstChoiseCard() As Card
    ...
    MinSelect=10
    ...
    Redim FirstChoiseCard(MinSelect-1)
    Stop
    'Get1 ???
    Я по сути задаю некоторый массив "карточек". Как мне правильно написать заголовок функции Get1, чтобы передать в нее весь динамический массив. Буду рад получить наиболее полную информацию можно или нельзя это делать и разумно ли так поступать. (В работе с классами не силен, поэтому просьба на них не ссылать и не пинять мне этим. Буду очень признателен)
     
  2. Akupaka

    Akupaka А че я?.. О.о

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

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

    pbnoob Well-Known Member

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

    Akupaka А че я?.. О.о

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

    pbnoob Well-Known Member

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

    Akupaka А че я?.. О.о

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

    Код:
    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

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

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