Toon posts:

[VB6] Control Array

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het schrijven van een programma wat een textbox als invoer heeft en 10 labels als uitvoer. Het is de bedoeling dat er in de textbox een willekeurige text getikt wordt en dat deze dan gekopieerd wordt naar de verschillende labels. Wel moet er in ieder label de lettergrootte met 1 punt verhoogd worden.
Het is me wel gelukt alleen lukt het met niet om het in een lus te zetten.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Private Sub Text1_Change()

End Sub

Private Sub Label4_Click()

End Sub

Private Sub Invoer_Change()

End Sub

Private Sub Ok2_Click()
Uitvoer(0) = Invoer
Uitvoer(1) = Invoer
Uitvoer(2) = Invoer
Uitvoer(3) = Invoer
Uitvoer(4) = Invoer
Uitvoer(5) = Invoer
Uitvoer(6) = Invoer
Uitvoer(7) = Invoer
Uitvoer(8) = Invoer
Uitvoer(9) = Invoer
Uitvoer(0).Font.Size = 8
Uitvoer(1).Font.Size = 9
Uitvoer(2).Font.Size = 10
Uitvoer(3).Font.Size = 11
Uitvoer(4).Font.Size = 12
Uitvoer(5).Font.Size = 13
Uitvoer(6).Font.Size = 14
Uitvoer(7).Font.Size = 15
Uitvoer(8).Font.Size = 16
Uitvoer(9).Font.Size = 17

End Sub

Private Sub Exit_Click()
End
End Sub

Private Sub Ok_Click()
For Index = 8 To 17
Uitvoer(Index).Font.Size = Index
Uitvoer(Index).Text = Invoer
Next Index

End Sub


Ok2 is dus tijdelijk een extra knop waar het programma onder werkt zonder de lus. Bij de lus blijft ie hangen bij .Text en geeft dan een melding van: Method or Data Member not found.

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:46
In VB6 heeft iedere 'container control' wel zoiets als een Controls property oid waar alle controls inzitten die op die 'container control' staan. Daar kun je dus gewoon doorlopen en testen of de huidige control van het type Label oid is.

Waarom krijg jij een compiler error? Omdat die Uitvoer array waarschijnlijk niet gekend is in die functie Ok_Click(). Waar heb je die array gedeclareerd?
Waarom gebruik je de reeds bestaande property niet?

https://fgheysels.github.io/


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

bestaat uitvoer 10 tm 17 wel? Je roept ze iig wel aan in je lusje.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Met 8 tm 17 bedoel ik dus de grootte van het lettertype zeg maar. Er zit dus ergens een fout in de lus maar ik kan hem niet echt achterhalen. En dat komt mede omdat, ik verder nog nooit heb geprogrammeerd.

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Een label heeft geen .Text, maar een .Caption, bijv

code:
1
2
3
4
5
6
7
8
Private Sub Ok_Click()
Dim Index as Long
For Index = 8 To 17
Uitvoer(Index).Font.Size = Index
Uitvoer(Index).Caption = Invoer
Next Index

End Sub


Overigens raad ik je aan meteen iets van variabelen te leren. Door bijv Index te declareren. (zie code)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

ff iets duidelijker dan
Ik ken vb dan wel niet.. Maar in je ene voorbeeld heb je uitvoer(0) t/m uitvoer(9).. Maar in je lusje laat je index van 8 naar 17 lopen. dan gaat ie dus ook uitvoer(10) tot en met uitvoer(17) aanpassen toch?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1