Avatar billede deamill Nybegynder
14. marts 2001 - 12:19 Der er 2 kommentarer og
2 løsninger

Klasser

Hejsa,

Jeg har set lidt på \"http://www.mvps.org/vbnet/ \" men syntes ikke rigtig jeg kunne finde et eksempel der viste hvordan man opretter sin egne klasser.

Er der en der har et simpelt konkret eksempel på en klasse med nogle fields og nogle metoder??
Avatar billede berg Nybegynder
14. marts 2001 - 12:37 #1
Der er en del eksempler på http://www.planetsourcecode.com/ jeg søgte på \"class\" det gav en hel del resulater, det der umiddelbart virkede bedst var:

http://www.planetsourcecode.com/xq/ASP/txtCodeId.14009/lngWId.1/qx/vb/scripts/ShowCode.htm

.:Berg:.
Avatar billede nolle_k Nybegynder
14. marts 2001 - 12:51 #2
\'Denne klasse er mere eller mindre lavet af VB via Class Buildren!


\'local variable to hold collection
Private mCol As Collection

Public Function Add(Resource As String, ResType As ResourceType) As clsResource
    \'create a new object
    Dim objNewMember As clsResource
    Set objNewMember = New clsResource

    On Error Resume Next
    \'set the properties passed into the method
    objNewMember.Resource = Resource
    objNewMember.ResourceType = ResType
   
    mCol.Add objNewMember, Resource
   
    If (Err.Number > 0) Then
      Err.Clear
      Set objNewMember = Nothing
      Set objNewMember = mCol(Resource)
    End If
       
    \'return the object created
    Set Add = objNewMember
    Set objNewMember = Nothing

End Function

Public Property Get Item(vntIndexKey As Variant) As clsResource
    \'used when referencing an element in the collection
    \'vntIndexKey contains either the Index or Key to the collection,
    \'this is why it is declared as a Variant
    \'Syntax: Set foo = x.Item(xyz) or Set foo = x.Item(5)
  On Error Resume Next
  Set Item = mCol(vntIndexKey)
End Property



Public Property Get Count() As Long
    \'used when retrieving the number of elements in the
    \'collection. Syntax: Debug.Print x.Count
    Count = mCol.Count
End Property


Public Sub Remove(vntIndexKey As Variant)
    \'used when removing an element from the collection
    \'vntIndexKey contains either the Index or Key, which is why
    \'it is declared as a Variant
    \'Syntax: x.Remove(xyz)


    mCol.Remove vntIndexKey
End Sub


Public Property Get NewEnum() As IUnknown
    \'this property allows you to enumerate
    \'this collection with the For...Each syntax
    Set NewEnum = mCol.[_NewEnum]
End Property


Private Sub Class_Initialize()
    \'creates the collection when this class is created
    Set mCol = New Collection
End Sub


Private Sub Class_Terminate()
    \'destroys collection when this class is terminated
    Set mCol = Nothing
End Sub


\'Denne klasse er lavet før den ovenstående og er lavet af en selv. Den øverste klasse er lavet på baggrund af denne klasse


Private m_Hours(vbSunday To vbSaturday) As Double
Private m_Resource As String
Private m_ResType As ResourceType




Public Function GetHours(WeekDay As VbDayOfWeek) As Double
  GetHours = m_Hours(WeekDay)
End Function
Public Sub AddHours(ByRef Hours As Double, WeekDay As VbDayOfWeek)
  \'Hours = Round(Hours, 2)
  m_Hours(WeekDay) = m_Hours(WeekDay) + Hours
End Sub
Private Sub Class_Initialize()
  Dim i As Integer

  m_Resource = \"\"

  \'Empty the hours
  For i = vbSunday To vbSaturday
    m_Hours(i) = 0
  Next i
End Sub
Public Property Get HoursTotal() As Double
  Dim i As Integer

  For i = vbSunday To vbSaturday
    HoursTotal = HoursTotal + m_Hours(i)
  Next i
End Property



Public Property Get Resource() As String
  Resource = m_Resource
End Property

Public Property Let Resource(ByVal vNewValue As String)
  m_Resource = vNewValue
End Property

Public Property Get ResourceType() As ResourceType
  ResourceType = m_ResType
End Property

Public Property Let ResourceType(ByVal vNewValue As ResourceType)
  m_ResType = vNewValue
End Property



Håber det hjælper!


//Nolle_K
Avatar billede deamill Nybegynder
14. marts 2001 - 13:28 #3
Kanon!

:-)
Avatar billede nolle_k Nybegynder
14. marts 2001 - 13:30 #4
I orden!
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