[VB6](Deel van) een User Defined Type als argument gebruiken

Status
Niet open voor verdere reacties.

BlackysBoss

Gebruiker
Lid geworden
5 jan 2014
Berichten
5
Hallo allemaal,

Nou ben ik al wat jaartjes aan het programmeren (in vb6 blijven hangen, dit voldoet tot nu toe prima), maar ik snap het nu even echt niet meer....

Code:
Public Type Commando
  Text As String
  Command As Byte
  Unit As Byte
  Value As Byte
End Type

Public Type Zender
  Naam As String * 16
  Adres As String * 8
  Aan(16) As Commando
  Uit(16) As Commando
End Type

Public Zenders(96) As Zender

Code:
Public Sub buildZenderAan(ByRef intarray() As Commando)
  blablabla
End Sub

De eerste call naar deze sub, met het onderstaande argument, geeft al direct een 'compile error: Type mismatch: array or user-defined type expected'
Code:
buildZenderAan (Zenders(1).Aan)

Nou zal ik wel gek zijn, maar volgens mij geef ik wel degelijk een array aan. Zij het dan een array in een array in een UDT. Ben er al een paar uur naar aan het staren, maar het word er niet beter van. Help?:o
 
Ik zie het zo:
Je declareert in Zender een array genoemd "Aan" van het type Commando met 16 elementen.
Dus de aanroep zou dan moeten zijn (dus mét een index voor Aan):
buildZenderAan (Zenders(1).Aan(1))

Natuurlijk moet jij maar bepalen of het Aan(1) of Aan(2) of ... of Aan(16) moet zijn; het gaat om het idee.

Tijs.
 
Ja, maar zoals je aan de Sub buildZenderAan kunt zien, wil ik de hele array aan() hebben, en niet alleen aan(1) of aan(2)

kleine uitleg: de sub vult een listbox met leesbare tekstregels gebaseerd op de drie byte-waarden in het commando-type. Aangezien ik exact dezelfde routine (buildZenderUit) had voor Zenders(1).uit(), en er straks ook een klok() bij moet komen, leek het mij logischer om dat in 1 fijne routine te gieten. Maar dat gaat dus nog niet zoals ik verzonnen had....:rolleyes:
 
Dan zal het wellicht een typefout zijn:
Als werkt
Zenders(1).uit()
dan zal
buildZenderAan (Zenders(1).Aan)
niet werken maar wel
buildZenderAan (Zenders(1).Aan())

Tijs.
 
Laatst bewerkt:
Oh, nee, sorry, dat werkt ook niet. De originele routine verwijst zelf al naar Zenders(x).aan, en krijgt als enige argument de index van Zenders(x) mee. Dat werkt prima, maar twee bijna identieke routines, waar nog een derde bij gaat komen, en misschien zelfs een vierde en een vijfde, dat leek me niets....

Remco
 
Hopelijk weet iemand anders je van goed advies te voorzien. Ik heb geen tips meer.

Tijs.
 
Opgelost. aanroep was fout. haakjes weglaten en draaien maar. Ik snap er niks van.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan