Страница: 1 |
Страница: 1 |
Вопрос: Проблема с объявлением массива
Добавлено: 29.08.04 01:18
Автор вопроса: Карандаш | ICQ: 231663488
Попытался объявить массив в начале программы:
Public mas(4)
но она мне выдала ошибку типа:"массивы не допускаются в качестве общик элементов модулей объектов". Пришлось писать доп условие в процедуре для обхода повторного объявления. Если есть др. варианты, то очень буду благодарен за любой совет.
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 29.08.04 01:39
Public/Private tArray() as type
Номер ответа: 2
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #2
Добавлено: 29.08.04 01:41
Вообще то чтобы использовать Public для массива, его надо объявлять в модуле. (не на форме). Т.е. делаешь новый модуль и в нём пишешь
Public mas(4)
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 29.08.04 01:43
Кстати твоя форма - это и есть объектный модуль.
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 29.08.04 02:14
А кстати, если ворма загружена, массив можно объявить и в коде формы... Вот только обращаться к енму будет нужно через имя формы, точка, имя массива
Номер ответа: 5
Автор ответа:
Карандаш
ICQ: 231663488
Вопросов: 1
Ответов: 5
Профиль | | #5
Добавлено: 29.08.04 11:04
Спасибо всем за участие. Ща испробую все предложенные варианты.
Номер ответа: 6
Автор ответа:
Карандаш
ICQ: 231663488
Вопросов: 1
Ответов: 5
Профиль | | #6
Добавлено: 29.08.04 11:30
Ответ на:Public/Private tArray() as type
С этим ваниантом что то не все гладко. Выдает ошибку компеляции:"ожидается New или имя типа".
Номер ответа: 7
Автор ответа:
Карандаш
ICQ: 231663488
Вопросов: 1
Ответов: 5
Профиль | | #7
Добавлено: 29.08.04 11:32
Ответ на:Вообще то чтобы использовать Public для массива, его надо объявлять в модуле. (не на форме). Т.е. делаешь новый модуль и в нём пишешь
Public mas(4)
А вот этот вариант просто супер. Все заработало. Подниму свои старые проги. Все поисправляю.
Номер ответа: 8
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #8
Добавлено: 29.08.04 12:33
дык ты заместо type напиши тип массива! (String/Long/Integer/Single/Dubble/Currency/Variant/Byte)
Номер ответа: 9
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #9
Добавлено: 29.08.04 13:39
Карандаш
Может не стоит все старые проги ковырять? Работают - значит ошибок нет, а то наворотишь сейчас
Да и ещё: если делаешь mas(4) без описания типа на конце строки, то по умолчанию создаётся массив типа Variant. Этот тип переменной конечно универсален и достаточно мощен, но с ним могут быть всякие неожиданные результаты в силу того, что этот тип может хранить любой тип данных. Как он будет интерпретироваться в том или ином случае - решать будет виртуальная машина VB. Если нет необходимости задействовать универсальность Variant'a, лучше объявить массив как конкретный тип, например: mas(4) As Long или mas(4) As String и т.д.
Номер ответа: 10
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #10
Добавлено: 29.08.04 13:51
Слушай, че ты мучаешься, просто
Private Mas(4)
или
Dim Mas(4)
Создавать ради одного массива модуль - глупо! Просто в форме нельзя Public писать, напиши просто Private!
P.S. После Mas(4) можешь написать тип, например :
Private Mas(4) as String
или
Private Mas(4) as Integer
Номер ответа: 11
Автор ответа:
Карандаш
ICQ: 231663488
Вопросов: 1
Ответов: 5
Профиль | | #11
Добавлено: 29.08.04 13:57
cresta
Объявил его как Integer. Спасибо за замечание.
Номер ответа: 12
Автор ответа:
Карандаш
ICQ: 231663488
Вопросов: 1
Ответов: 5
Профиль | | #12
Добавлено: 29.08.04 14:02
Kodo
Все работает. Теперь сижу и думаю "а какого черта меня потянуло его через Public объявлять". Ведь действительно он мне нужен только в рамках этой формы. Но если объявлять глобальный массив, то все равно через модуль. Спасибо