> Jeg kan ikke se nogen sammenhæng mellem akkumuleret-værdi og din
> property !??!?? Hvad er sammenhængen ??
>
> > er der nogen der har en ide om, hvad der foregår?
>
> Ikke det fjerneste
Vis os koden...
Hej Preben Nielsen
Jeg kan godt se, at jeg ikke har givet dig meget konkret kode at gå efter,
men der er for meget hvis det hele skal med. Men jeg har en lumsk anelse om,
at jeg har fundet den brist som der måske er.
Jeg har lavet en todimensionel punkt-klasse som jeg også kan give en
(single) property "masse". I et modul opretter jeg forskellige instanser af
punkt-klassen og lægger dem enkeltvis i en almindelig collection 'Punkter'.
Nu vil jeg så iterere gennem collectionen 'Punkter' (for/next) og akkumulere
punkternes samlede masse - men resultatet har jeg gode grunde til at tage
med et forbehold.
Fra microsofts library på
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/htm
l/vbcontheoneminuteterminologist.asp
gennemgås tre eksempler på oprettelsen af et 'collections' objekt. Så vidt
jeg kan gennemskue så vil blot det sidste eksempel indeholde en mulighed for
internt at iterere gennem objektets members med for/next - det er det
eksempel som bygger på et klasse-modul oprettet 'collections' objekt. Jeg
citerer:
quote........... snip
Enabling For Each Next
Along with robustness, you get For Each Next back. Once again you can
delegate all the work to the Collection object, by adding the following
method:
' NewEnum must return the IUnknown interface of a
' collection's enumerator.
Public Function NewEnum() As IUnknown
Set NewEnum = mcolEmployees.[_NewEnum]
End Function
The important thing you're delegating to the Collection object is its
enumerator. An enumerator is a small object that knows how to iterate
through the items in a collection. You can't write an enumerator object with
Visual Basic, but because the Employees class is based on a Collection
object, you can return the Collection object's enumerator — which naturally
enough knows how to enumerate the items the Collection object is holding.
The square brackets around the Collection object's _NewEnum method are
necessary because of the leading underscore in the method name. This leading
underscore is a convention indicating that the method is hidden in the type
library. You can't name your method _NewEnum, but you can hide it in the
type library and give it the procedure ID that For Each Next requires.
unquote........
< enumerator-objektet gemmes og indstilles i typebiblioteket:
Tools menu
/Procedure Attributes to open the Procedure Attributes dialog box. In
/Name box, select the
/NewEnum method. Click
/Advanced to show the advanced features. Check Hide this member to make
NewEnum hidden in the type library.
< og her er det at min vba ikke længere kan være med.
....altså, hvis ikke mit collections-objekt kan akkumulere en værdi ved at
iterere, så er det altså objektet's og ikke min skyld!
Carsten