Avatar billede tobbigold Nybegynder
21. september 2001 - 10:59 Der er 3 kommentarer

Returnering af en samling objekter fra en klasse ?

Hej Eksperter...
Jeg har udviklet en del i VB men er først nu begyndt at benytte klasser i min programmering.
Jeg har brug for at kunne returnere en samling af objekter via et funktionskald til en klasse.

Jeg beskriver lige hvad det er jeg vil lave, det kan jo være at der er en smartere måde at løse opgaven på :-)

Jeg har en klasse som bliver fyldt nogle properties omkring en flyrejse. Altså:
Antal rejsende
AfrejseLufthavn
Destination
o.s.v.

Når rejsen er beskrevet kan man bede systemet søge på mulige flyafgange, via et funktions kald til samme klasse.

Jeg ville nu gerne kunne returnere en samling af objekter som indeholder alle de nødvendige data for de fundene flyafgange.

Please Help.: :-)




Avatar billede jper Nybegynder
21. september 2001 - 12:14 #1
du kan returnere en collection f.eks.

public function FlyRejse(parametere) as Collection
  \'Din kode der fylder collection
end function
Avatar billede tobbigold Nybegynder
21. september 2001 - 12:37 #2
Og Tak,

Jeg har luret lidt på denne Collection function
Men hvordan fylder jeg den op med objekter ?
Og hvordan læser jeg dem igen.

Men jeg tror vi er på rette spor her :-)
Avatar billede wilco Nybegynder
23. september 2001 - 19:30 #3
Måske dette kan bruges

Sub ClassNamer()
  Dim MyClasses As New Collection  \' Create a Collection object.
  Dim Num  \' Counter for individualizing keys.
  Dim Msg As String  \' Variable to hold prompt string.
  Dim TheName, MyObject, NameList  \' Variants to hold information.
  Do
      Dim Inst As New Class1  \' Create a new instance of Class1.
      Num = Num + 1  \' Increment Num, then get a name.
      Msg = \"Please enter a name for this object.\" & Chr(13) _
      & \"Press Cancel to see names in collection.\"
      TheName = InputBox(Msg, \"Name the Collection Items\")
      Inst.InstanceName = TheName  \' Put name in object instance.
      \' If user entered name, add it to the collection.
      If Inst.InstanceName <> \"\" Then
        \' Add the named object to the collection.
        MyClasses.Add item := Inst, key := CStr(Num)
      End If
      \' Clear the current reference in preparation for next one.
      Set Inst = Nothing
  Loop Until TheName = \"\"
  For Each MyObject In MyClasses  \' Create list of names.
      NameList = NameList & MyObject.InstanceName & Chr(13)
  Next MyObject
  \' Display the list of names in a message box.
  MsgBox NameList, , \"Instance Names In MyClasses Collection\"

  For Num = 1 To MyClasses.Count  \' Remove name from the collection.
      MyClasses.Remove 1  \' Since collections are reindexed
            \' automatically, remove the first
  Next      \' member on each iteration.
End Sub

/Wilco
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

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