Класс, подобный Listitems

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Класс, подобный Listitems

Сообщение Alexanbar » 21.08.2006 (Пн) 9:55

С одной стороны,

Код: Выделить всё
Listview1.Listitems.Add ....


а с другой стороны

Код: Выделить всё
listview1.listitems(1).text


Т.е.

Listview1.Listitems без указания индекса возвращает Listitems, а с указанием, возвращает Listitem.

А как это реализовать на VB6?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.08.2006 (Пн) 10:02

Код: Выделить всё
Dim lCol as Collection

Public Property Get ListItems(Optional Index As Integer) As Object
    If Index = 0 Then
        Set ListItems = lCol
    Else
        Set ListItems = lCol(Index)
    End If
End Property
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение alibek » 21.08.2006 (Пн) 10:03

Э...
А...

Кхм...

Вообщем, ListItems -- это коллекция, содержащая ListItem. В этой коллекции есть мембер Item (с аргументом Index), возвращающий ListItem, причем это мембер по умолчанию.
Т.е. если ты обращаешься к свойствам коллекции ListItems без указания имени свойства, то ты будешь обращаться к свойству Item.

Поэтому когда ты пишешь ListItems.Add, это означает "обратится к методу Add объекта ListItems". А когда ты пишешь ListItems(1).Text, это равносильно ListItems.Item(1).Text и означает "обратится к свойству Item объекта ListItems".
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.08.2006 (Пн) 10:09

Хмм... Действительно :?
Alexanbar, запусти addin Class Biulder Utility, он покажет как делать коллекции.
Лучший способ понять что-то самому — объяснить это другому.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 21.08.2006 (Пн) 10:11

Над тем способом, что указан, я думал. Но то, что Listitems - это коллекция Listitem, указано только словами. А так написано, что Listitems - это класс.
К тому же подсказка

Код: Выделить всё
Listview1.Listitems(1).Text

не выдаётся .

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.08.2006 (Пн) 10:30

Ещё раз: Listview1.Listitems никогда не получает параметра и всегда возвращает класс Listitems.
Изображение

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 21.08.2006 (Пн) 10:35

Вроде появился свет в конце тоннеля:

Antonariy писал(а):Хмм... Действительно :?
Alexanbar, запусти addin Class Biulder Utility, он покажет как делать коллекции.

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

Сообщение alibek » 21.08.2006 (Пн) 10:40

Alexanbar писал(а):Над тем способом, что указан, я думал. Но то, что Listitems - это коллекция Listitem, указано только словами. А так написано, что Listitems - это класс.

Коллекция -- это тоже класс.
Lasciate ogni speranza, voi ch'entrate.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 21.08.2006 (Пн) 11:07

Вроде разобрался. Надо в классе Listitems создать свойство Item и установить "По умолчанию" (Инструменты->Атрибуты процедур->кнопка Advanced)


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

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

Сейчас этот форум просматривают: Mail.ru [бот], Yandex-бот и гости: 50

    TopList