Тема: Динамические массивы и ссылки на объекты

Добрый день.

Задача в следующем: необходимо сформировать динамический массив из пользователей (ссылок).

Dim Otv(), OtvUser(100) 
Redim Otv(10)
set d = thisapplication.Users(0)     
Otv(UBound(Otv)) = d 'ошибка
OtvUser(10) = d  'ошибка
a = array (d,d) 'оки

При ошибке пришет, что объект не потдерживает это свойство или метод. При записи чисел или строк всё оки.

В стравке TDMS про ReDim пишется "При инициализации массива, все числовые элементы инициализируются как "0", а строчные как строка нулевой длины (""). Прежде чем использовать переменную типа ссылки на объект, её необходимо связать с существующим объектом при помощи инструкции Set. До тех пор переменная интерпретируется как Nothing", то есть ссылки в масив можно добавлять... Но мне явно нужет пример кода))

(изменено: Edhunter, 2 мая 2012г. 15:32:20)

Re: Динамические массивы и ссылки на объекты

d - тип данных ITDMSUser (объект по сути) соответственно и при связывании элемента массива необходимо использовать инструкцию Set

Dim aUsers()
iCounter = 0
For Each u In ThisApplication.Users
  Redim Preserve aUsers(iCounter)
  Set aUsers(iCounter) = u
  iCounter = iCounter +1
Next
MsgBox UBound(aUsers)

Re: Динамические массивы и ссылки на объекты

Edhunter пишет:

d - тип данных ITDMSUser (объект по сути) соответственно и при связывании элемента массива необходимо использовать инструкцию Set

Dim aUsers()
iCounter = 0
For Each u In ThisApplication.Users
  Redim Preserve aUsers(iCounter)
  Set aUsers(iCounter) = u
  iCounter = iCounter +1
Next
MsgBox UBound(aUsers)

Спасибо тебе, красно-чёрный человек ^^