[VB6] Array naar ander form doorgeven

Pagina: 1
Acties:

  • Joozt
  • Registratie: Augustus 2001
  • Laatst online: 24-05 11:15
Ik heb 2 forms. Daartussen wil ik een array doorgeven.

Een array ophalen van form1 in form2 lukt me wel. Nu wil ik de array (aangepast) weer terugsturen naar form1 maar ik krijg telkens (@runtime) een Compile Error (Type mismatch: array or user-defined type expected).

Voorbeeldprogramma:

Form1:
code:
1
2
3
4
5
6
7
8
9
Public Function setArray(inputArr() As String)
    For i = 0 To UBound(inputArr)
        List1.AddItem (inputArr(i))
    Next i
End Function

Private Sub Form_Load()
Form2.Show
End Sub



Form2:
code:
1
2
3
4
5
6
7
Private Sub Command1_Click()
Dim params(29)
    For i = 0 To 30
        params(i) = i + 200
    Next i
    Form1.setArray(params)
End Sub


Ik doe waarschijnlijk iets heel stoms, maar ik weet niet waar ik naar moet zoeken (in google en de search)

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 20-05 00:48

ZaZ

Tweakers abonnee

de foutmelding zegt het al heh? ;)
de functie (die niet echt een functie is) verwacht een array van strings te ontvangen, en jij stuurt m een array van 'any's'
dus Dim params(29) as String zou moeten werken of in je 'functie' aanpassen dat ie geen string verwacht.
ik zie ook dat je Dim params(29) doet en daarna van 0 naar 30 gaat in een lusje.
daarmee gaat ie ook zeker weten mee op zijn bek :)

Lekker op de bank


  • Joozt
  • Registratie: Augustus 2001
  • Laatst online: 24-05 11:15
Ok, ik heb het nu anders. Ik moest wel 30 plaatsen declareren ja.


Nu heb ik dit:

form1:
code:
1
2
3
4
5
6
7
8
9
Public Sub setArray(inputArr() As String)
    For i = 0 To UBound(inputArr)
        List1.AddItem (inputArr(i))
    Next i
End Sub

Private Sub Form_Load()
    Form2.Show
End Sub


en form2:
code:
1
2
3
4
5
6
7
Private Sub Command1_Click()
Dim params(30) As String
    For i = 0 To 30
        params(i) = CStr(i + 200)
    Next i
    Form1.setArray(params)
End Sub


Maar het werkt nog steeds niet, ik krijg nog steeds dezelfde foutmelding.

Moet je misschien arrays op een andere manier doorgeven aan een ander form?

[ Voor 8% gewijzigd door Joozt op 20-06-2004 17:54 ]


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 21:00
Form1.setArray is een Sub en geen function.
Gebruik daarom
code:
1
Call Form1.setArray(params)
of
code:
1
Form1.setArray params


en toch vind ik het raar dat Dim params(30) een array met grootte 31 (0...30) aanmaakt

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 23:41

Exterazzo

Qeasy

Waarom declareer je de Array niet als Public? Dan kun je hem vanaf elke plaats bereiken.

Audentia


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 23-05 21:15

Sponge

Serious Game Developer

nescafe schreef op 20 juni 2004 @ 18:17:
en toch vind ik het raar dat Dim params(30) een array met grootte 31 (0...30) aanmaakt
Is eigenlijk best wel standaard. wil je het niet, zet dan "Option base 1" boven aan je module. Maar let op, dit is niet echt de standaard... :)

  • Joozt
  • Registratie: Augustus 2001
  • Laatst online: 24-05 11:15
nescafe schreef op 20 juni 2004 @ 18:17:
Form1.setArray is een Sub en geen function.
Gebruik daarom
code:
1
Call Form1.setArray(params)
of
code:
1
Form1.setArray params
Jep, dit werkt wel goed...
Exterazzo schreef op 20 juni 2004 @ 18:25:
Waarom declareer je de Array niet als Public? Dan kun je hem vanaf elke plaats bereiken.
Je kunt array's niet public maken.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
nescafe schreef op 20 juni 2004 @ 18:17:
en toch vind ik het raar dat Dim params(30) een array met grootte 31 (0...30) aanmaakt
Haha :) , wie heeft ooit gezegd dat VB(.NET) logisch is ?

VB neemt de nummers in je declaratie als Lbound en Ubound, itt de meeste andere talen op deze planeet die het nummer als grootte v/h array behandelen.
Je kunt array's niet public maken.
Niet als je ze in het form zelf declareert. Dan nog zou ik wat access functies ( get/set ) schrijven voor je array.

[ Voor 18% gewijzigd door farlane op 20-06-2004 20:26 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1