Avatar billede jamola Nybegynder
15. august 2004 - 13:02 Der er 2 kommentarer og
1 løsning

Arrays i kodemoduler og Collections

Jeg benytter VB 5.0. I et class module (VareBestilling) har jeg erklæret følgende variabler:
...................................................................................
  Private Type VareType1    'user definet type
    Vare_nr As Long
    Vare_navn As String
    Pris As Double
    antal As Integer
  End Type
 


  Private mlNr                          As Long    'Bestillingends nummer
  Private msNavn                        As String  'Det unikke navn på bestilling
  Private mvVarer()                    As VareType1 'Array af en user definet type

'Jeg har defineret en Collection (Varebestillinger)
'Denne funktion i VareBestilling 'Adder'et objekt af klassen VareBestilling til Colloction: Varebestillinger


  Friend Sub TilfojCol(ByRef col As VareBestillinger)

  col.Add mlNr, msNavn, msNavn
  'col.Add mlNr, msNavn, mvVarer(), msNavn  (Dette ville jeg egentligt have gjort)
 
  End Sub
.....................................................................................
Oprindeligt ville jeg også have 'Addet' mvVarer() , men det virker ikke som om jeg får lov at 'Adde' en nyt objekt af typen

varebestilling til en collection af typen Varebestillinger hvis jeg har et array (mvVarer()) i klassen Varebestilling. Er det fordi man

ikke kan overføre arrays i versioner af VB ældre end 6.0?
Eller er det fordi collection-mudulet VareBestillinger ikke kender min UDT, som er erklæret 'private' i min Klasse VareBestilling?

Er de
Avatar billede martin_moth Mester
16. august 2004 - 08:39 #1
"Er de" ... hvad?
Avatar billede sion Nybegynder
20. august 2004 - 21:05 #2
Jeg svarede på et tilsvarende spørgsmål på VBGamer.com - du får lige smøren:
"I found out (from MSDN) that it's simply impossible to use custom data types in collections. That is one of the few things that collections can not contain.
So you have to work around it somehow. How you can do that depends on the purpose of the data, but you could make a class instead of a data type and use that in your collection. You would also make your own collection class that can contain custom data types. Infomation on how to make your own collections can be found by searching on google."

Altså, du collections kan - som en af de eneste ting - ikke indehold hjemmestrikkede typer. Ærgeligt men sandt. Så du må omgå begrænsningen på en eller anden måde. F.eks. ved at bruge en klasse.
Avatar billede jamola Nybegynder
23. august 2004 - 10:03 #3
Jeg er heldigvis kommet videre og har omgået problemet, men jeg vil godt give pointene til Sion.

Undskyld den mangelfulde spørgsmålsformulering. I sidste linie skulle der have stået:
"Er der nogen der har en løsning på det problem?"

:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester