Коллекции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.05.2005 (Ср) 13:03

Создаешь класс со свойствами "Имя", "Название", "Тип", и добавляешь в коллекцию экземпляры данного класса.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.05.2005 (Ср) 13:28

и обязательно должно быть свойство в коллекции (в атрибутах Procedure ID=-4):

Код: Выделить всё
Public Property Get NewEnum() As IUnknown
    'this property allows you to enumerate
    'this collection with the For...Each syntax
    Set NewEnum = mCol.[_NewEnum]
End Property

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.05.2005 (Ср) 13:44

Точно, забыл про него добавить.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.05.2005 (Ср) 15:11

VB.NET не знаю, поэтому только для VB6:
-открываешь Tools\Procedure Attributes
- ищешь там свойство NewEnum
- нажимаешь кнопку Advanced
- в комбе Procedure ID прописываешь -4
- нажимаешь ОК

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.05.2005 (Ср) 15:24

чтобы For Each цикл заработал

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.05.2005 (Ср) 15:38

Roman Koff
Применительно к VB .NET в другом разделе.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 18.05.2005 (Ср) 15:42

Для VB.NET надо реализовывать интерфейсы IEnumerable и IEnumerator.
Моду создают модоки, а распространяют модозвоны.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.05.2005 (Ср) 16:39

Roman Koff писал(а):Ок, спасибо, все работает
А есть встроенная возможность производить сортировку коллекции по значениям определенного свойства элемента или это реализуется только ручками?


Зачем тебе коллекция?
У тебя ведь таблица. Ну дык открой ее как Recordset.
Там и сортировка и фильтрация есть...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.05.2005 (Ср) 18:11

в запросе LDAP и сортируй сразу

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.05.2005 (Ср) 18:13

или отсоединенный рекордсет:

Код: Выделить всё
Set rs=New ADODB.Recordset
rs.Fields.Append "Name",adVarchar,100
...
rs.Open
...
rs.AddNew
rs![Name]="my name1"
rs.Update
...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 169

    TopList