Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Problemen met classes in VB 6

elloco
2 antwoorden
  • Hoi,

    Ik heb een probleem met het volgende:

    Ik heb een zelf geschreven class Ding. Deze class heeft een string Name, een integer Number en een string Info. De code staat hieronder.
    [code:1:a0458f335d]
    Option Explicit

    Private strName As String
    Private intNumber As Integer
    Private strInfo As String

    Public Function getName() As String
    getName = strName
    End Function

    Public Function getNumber() As Integer
    getNumber = intNumber
    End Function

    Public Function getInfo() As String
    getInfo = strInfo
    End Function

    Public Sub setName(ByVal strTemp As String)
    strName = strTemp
    End Sub

    Public Sub setNumber(ByVal intTemp As Integer)
    intNumber = intTemp
    End Sub

    Public Sub setInfo(ByVal strTemp As String)
    strInfo = strTemp
    End Sub[/code:1:a0458f335d]

    Ik heb ook nog een andere class, genaamd Verzameling. Deze heeft een string Name en een array van class Ding.

    [code:1:a0458f335d]
    Option Explicit

    Private strName As String
    Private aDing(1 to 10) As New Ding

    Public Function getDing(intIndex As Integer) As Ding
    Set getDing = aDing(intIndex)
    End Function

    Public Function getName() As String
    getName = strName
    End Function

    Public Sub setDing(intIndex As Integer, ByVal dingTemp As Ding)
    Set aDing(intIndex) = dingTemp
    End Sub

    Public Sub setName(ByVal strTemp As String)
    strName = strTemp
    End Sub[/code:1:a0458f335d]
    Nou heb ik geen flauw idee of dit zo zou werken (voor getDing en setDing), want ik kan het niet eens uittesten. Het probleem waar ik nu mee zit is namelijk het volgende:

    Als ik vanuit een andere class een nieuwe verzameling maak en er vervolgens een naam aan geef gaat het nog goed. Maar als ik dan een ding in de array wil zetten gaat het mis.
    [code:1:a0458f335d]
    Dim dTemp As New Ding
    dTemp.setName("Nieuw Ding")
    dTemp.setNumber(1)
    dTemp.setInfo("")

    newVerzameling.setName("nieuwe verzameling")
    newVerzameling.setDing(1, dTemp)[/code:1:a0458f335d]
    Ik krijg hier de foutmelding: Compile Error Expected: =

    Dit snap ik dus niet, want bij setName gaat het wel goed.

    Wie kan mij vertellen wat ik hier fout doe?

    Alvast bedankt,
    El Loco
  • je roept een sub aan met haakjes
    maak er: [code:1:60e9f7b2cc]newVerzameling.setDing 1, dTemp[/code:1:60e9f7b2cc]
    of: [code:1:60e9f7b2cc]Call newVerzameling.setDing(1, dTemp)[/code:1:60e9f7b2cc]
    van

    dat het met het aanroepen v/d andere subs goed gaat heeft te maken met het aantal argumenten, namelijk één (1), de waarde tussen de haakjes wordt dan geinterpreteerd als een te evalueren expressie, weliswaar onbedoeld (door jou) maar niet fout. bij twee (of meerdere) argumenten wordt deze (voor vb nu wel vreemde) statement natuurlijk als (syntactisch) incorrect gezien.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.