There are 10 types of people in this world, those who understand binary and those who don't
1
| dynamicarray(vakteller) = txtmeting(vakteller).Text |
En moet je je array niet eerst effe (re)-dimmen op de juiste grootte? Je Dimt je array wel, maar geeft er geen grootte aan. Dan kun je er dus niks in stoppen.
1
| Dim myArray(1000) as integer |
maar dat is geen dynamische array, maar een statische. Gebruik:
1
2
3
4
5
| Dim myArray() as integer Dim maxSize as long maxSize = 1000 Redim myArray(maxSize) |
...voor de dynamische versie.
En als ik dan toch "les" geef in arrays: kijk bij ReDim ook eens effe naar het Preserve keyword (hoewel 't technisch een beetje ranzig is, soms wel handig)
[ Voor 65% gewijzigd door RobIII op 17-09-2004 01:05 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Nog wel aardig om toe te voegen, is de Array functie (vb6 heeft die, vb5 niet)
1
| dynamicarray = Array(txtmaten(0), txtmaten(1), txtmaten(2), ..., ..., ...) |
Niet zo mooi, maar soms wel ff handig.
Ik denk niet dat je er nu wat aan hebt (de tip van RobIII is beter bruikbaar), maar het is niet onaardig om daar even op gewezen te worden.
Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea
zit nu al een aantal dagen nonstop met dit programma te werken en zie soms door de bomen effe het bos niet meer
Ben er inderdaad uit nu
Maakte ook nog de trieste fout met het printen van de array
picture1.print = dynamicarray(vakteller)
in plaats van :
for vakteller = 1 to (aantal -1)
picture1.print = dynamicarray(vakteller)
next vakteller
En dan heb je het idee dat je array niet werkt he.....
Zit nog wel met 1 vraag :
Ik heb dit stukje data :
For vakteller = 0 To (aantal - 1)
If txtmeting(vakteller).BackColor = RGB(255, 255, 255) Then
dynamicarray(vakteller) = txtmeting(vakteller).Text
Elseif txtmeting(vakteller).BackColor = RGB(255, 0, 0) Then
goto (regel : next-teller)
End If
Next vakteller
Hier wil ik mee bereiken dat de waarde van de textvakken met een rode achtergrond niet worden meegenomen in de dynamic array.
Laat ik het elseif/then gedeelte weg, dan schrijft ie op die plek een nul in de array, wat ik niet wil.
En goto is een NO GO !
Is het mogelijk het goto gedeelte met een loopje te vervangen, zodat de arraywaarde van 'vakteller + 1' op de plek van 'vakteller' komt en zo verder, om te voorkomen dat de array even lang blijft en op de niet meegenomen vaktellers een 0 nulwaarde neerzet ?
[ Voor 108% gewijzigd door chrisstructor op 17-09-2004 12:35 ]
There are 10 types of people in this world, those who understand binary and those who don't
Verwijderd
1
2
3
4
5
6
7
| long lngDynaTeller = 0
For vakteller = 0 To (aantal - 1)
If txtmeting(vakteller).BackColor = RGB(255, 255, 255) Then
dynamicarray(vakteller) = txtmeting(vakteller).Text
lngDynaTeller = lngDynaTeller +1
End If
Next vakteller |
Ander puntje: welke VB(A) heb je hier ? In bv VB 6.0 kan je collecties van widgets maken.
Edit: zoek de bug !
[ Voor 7% gewijzigd door Verwijderd op 17-09-2004 13:20 ]
en thanks
zal proberen het zo aan de praat te krijgen
hmmm bovenstaande lost het probleem niet op.
in de array blijf ik de waarde 0 terugvinden voor de rode (niet meetellende) vakken
[ Voor 37% gewijzigd door chrisstructor op 17-09-2004 13:00 ]
There are 10 types of people in this world, those who understand binary and those who don't
Gebruik ten eerste eens effe code-tags, dat leest een stuk prettiger.chrisstructor schreef op 17 september 2004 @ 12:54:
ik heb hier vb 6.0 , maar nog niet van widgets gehoord
en thanks
zal proberen het zo aan de praat te krijgen
hmmm bovenstaande lost het probleem niet op.
in de array blijf ik de waarde 0 terugvinden voor de rode (niet meetellende) vakken
Verder snap ik je bedoeling niet helemaal wat betreft dat gebeuren met die rode achtegrond-textboxes... Wat wil je daar nu precies mee doen? Je dynamic array vullen met alle textboxes, behalve de rode? En als ze rood zijn, moet er dan een "gap" in je array komen, of wordt de volgende "non-rode" texbox-waarde gewoon in de array gepoft?
Probeer iets duidelijker te zijn a.u.b.
Overigens, als ik je code wat beter bekijk:
1
2
3
4
5
6
7
| For vakteller = 0 To (aantal - 1)
If txtmeting(vakteller).BackColor = RGB(255, 255, 255) Then
dynamicarray(vakteller) = txtmeting(vakteller).Text
Elseif txtmeting(vakteller).BackColor = RGB(255, 0, 0) Then
goto (regel : next-teller)
End If
Next vakteller |
ik denk dat ik nu begrijp wat je wil... Momentje:
1
2
3
4
5
6
7
8
| Dim lIndex as long
lIndex = 0
For vakteller = 0 To (aantal - 1)
If txtmeting(vakteller).BackColor = RGB(255, 255, 255) Then
dynamicarray(lIndex) = txtmeting(vakteller).Text
lIndex = lIndex + 1
End If
Next vakteller |
Zoiets?
En als laatste opmerking: Het is niet de bedoeling dat we, vooral dit soort relatief "basic" vragen, voor je gaan voorkauwen. Debug je code eens (zet een breakpoint of een watch) en gebruik je hoofd gewoon om uit je probleem te komen. Dit is toch redelijk "beginnerswerk" en hier @P&W hebben we toch liever de wat "uitdagender" vraagjes
@bloog hieronder: Regel 1 zal niet compileren lijkt me
[ Voor 62% gewijzigd door RobIII op 17-09-2004 13:20 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Verwijderd
1
2
3
4
5
6
7
| long lngDynaTeller = 0
For vakteller = 0 To (aantal - 1)
If txtmeting(vakteller).BackColor = RGB(255, 255, 255) Then
dynamicarray(lngDynaTeller) = txtmeting(vakteller).Text
lngDynaTeller = lngDynaTeller +1
End If
Next vakteller |
sorry voor de basic stuff, maar ben hard op weg verder als basic te komen
There are 10 types of people in this world, those who understand binary and those who don't