LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Как созда...
 Тема: Как создать свою коллекцию объектов?
 
 15.06.2007 21:09:47
NikNik
7 сообщения


Тема: Как создать свою коллекцию объектов?
например, как коллекция forms...
чтобы можно было обращаться к элементу и по номеру и по названию:

MyObjectCollection(0).СвойствоМоегоОбъекта
MyObjectCollection("Name").СвойствоМоегоОбъекта

т.е. я создал некий класс. Объектов этого класса может быть много. Как мне засунуть их в коллекцию?


P.S. Создание классов
Автор: r_nikola от 12.10.2005 18:46:41 Источник ...
 15.06.2007 21:09:47
All
4316 сообщения
1-ый


Уже разобрался
Извиняйте за беспокойство


P.S. Создание классов
Автор: r_nikola от 0:00:00 Источник ...
 15.06.2007 21:09:47
All
4316 сообщения
1-ый


RE: Как создать свою коллекцию объектов?
Лучше на эту тему почитать "Разработка настольных приложений" Пола Литвина где грамотные ребята предлогают создание коллекции в два этапа.
1-й создание класса в котором описываются элементы коллекции.
2-й создание самой коллекции.
Что-бы много не писать выложу свою коллекцию.
Option Compare Database
Option Explicit

1-й этап(Создаю класс clsWriteOffRow)
Option Compare Database
Option Explicit

Private strCLine As String
Private lngIdGood As Long
Private dblPrime As Double

Private Sub Class_Initialize()
strCLine = "Line" & CLng(Rnd * (2 ^ 31))
End Sub
Property Get CLine() As String
CLine = strCLine
End Property

Property Get pIdGood() As Long
pIdGood = lngIdGood
End Property
Property Let pIdGood(ByVal PRM As Long)
lngIdGood = PRM
End Property

Property Get pPrime() As Single
pPrime = dblPrime
End Property
Property Let pPrime(ByVal PRM As Single)
dblPrime = PRM
End Property

2-й этап(Создаю класс clsWriteOffRows который описывает действия с коллекцией)
Option Compare Database
Option Explicit

Private mcolWriteOff As Collection

Private Sub Class_Initialize()
Set mcolWriteOff = New Collection
End Sub

Public Sub Add(ByVal ByVal argIdGood As Long, _
ByVal argPrime As Double, _
Optional ByVal varBefore As Variant)

Dim mclsWriteOffRow As New clsWriteOffRow

With mclsWriteOffRow
.pIdGood = argIdGood
.pPrime = argPrime
End With

mcolWriteOff.Add mclsWriteOffRow, mclsWriteOffRow.CLine, varBefore

End Sub

Public Sub Remove(ByVal varID As Variant)
mcolWriteOff.Remove varID
End Sub

Public Function Item(ByVal varID As Variant) As clsWriteOffRow
Set Item = mcolWriteOff(varID)
End Function

Property Get Count() As Long
Count = mcolWriteOff.Count
End Property

В приложении заполняется коллекция так
Do Until .EOF
mclsWriteOffRows.Add RS!fIdGood, RS!fPrime
.MoveNext
Loop

Обращение к элементу коллекции
mclsWriteOff.mclsWriteOffRows.Item(i).pIdGood

Советую много почитать перед началом испытаний.


P.S. Создание классов
Автор: Luckiy от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Как созда...
ПоискПоиск  Список форумовСписок форумов  
right