Toon posts:

[vb6] Dim laat getal verdwijnen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hello,

Ik ben nog steeds bezig met m'n schoolproject: Bouw een rekenprogramma waar kinderen sommen mee kunnen maken.
Ik heb nu een random getal dat wordt neer gezet maar ik had hem niet gedeclareerd als een Integer dus als je bv. de getallen 3 en 4 wil optellen krijg je 34.
nu heb ik ze wel gedeclareerd: Dim getal1 As Integer. en getal 2 ook.
maar nu laat hij het getal helemaal niet meer zien,
maar als ik print getal1 doe laat hij wel een getal zien.

Ik zal de code even neerzetten, dat verklaart misschien wat meer.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim lblSom3 As Integer
Dim lblSom1 As Integer

If optOptellen = True Then
    If optMakkelijk = True Then
    High = 10
    Low = 1
    Let lblSom1 = Int((High - Low + 1) * Rnd) + Low
    Let lblSom3 = Int((High - Low + 1) * Rnd) + Low
    Print lblSom1 'hier geeft hij dus wel gewoon een getal
    lblSom2 = "+"
    End If

    If optMoeilijk = True Then
    'komt nog.
    End If
End If


ik heb dus in mijn form 2 labels die lblSom1 en lblSom3 zouden moeten neerzetten, maar dit gebeurd niet.

Zoeken heb ik gedaan, maar ik heb echt geen idee op wat voor keywords dus daar kwamen geen zinnige websites of topics uit.

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 22-04 03:55

Nick_S

++?????++ Out of Cheese Error

Met welke code heb je je getallen in je label gezet.

Ik gok dat het iets moet zijn als <naamLabel>.setText(getal). (Sorry, ben Java progger, maar zoek de documentatie van je label eens op)

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Met alle respect, maar dit is wel heel erg basic.

Ten eerste: Je hebt labels met de naam lblSom op je form :? En variabelen met dezelfde naam? Dat gaat niet goed hoor :P

Ten tweede dien je bij voorkeur geen gebruik te maken van default properties en dus expliciet vermelden wat je wil doen: lblSom1.caption = "bla"

Ten derde dim je nergens High en Low

Dan zie ik niet waarom je Let gebruikt, want dat is nergens voor nodig.

En tot slot zie ik niet waarom je niet ziet dat er niks uit komt. De "uitslag" wordt namelijk inderdaad nergens toegekend aan een label's caption ofzo.


Even wat voorkauwen:
Begin een nieuw project en gooi 1 label op je form en zet het name property op lblResult.

Copy / Paste vervolgens deze code in je project:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
    Dim a As Integer
    Dim b As Integer
    
    Const min = 1
    Const max = 10
    
    a = Int((max - min + 1) * Rnd) + min
    b = Int((max - min + 1) * Rnd) + min
    
    lblResult.Caption = "De som van " & a & " en " & b & " is: " & (a + b)
End Sub

Ik denk dat het dan wel duidelijk(er) is, niet?
Je zou natuurlijk nog een derde variabele kunnen gebruiken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Form_Load()
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer

    Const min = 1
    Const max = 10
    
    a = Int((max - min + 1) * Rnd) + min
    b = Int((max - min + 1) * Rnd) + min
    c = a + b
    
    lblResult.Caption = "De som van " & a & " en" & b & " is: " & c
End Sub

Let er overigens op dat VB6 impliciet integers naar strings converteert als je & gebruikt zoals je ziet in de laatste regel.

Klein (niet lullig bedoeld) tipje: Neem even een goede VB6 tutorial door, want het ontbreekt je zo te zien nogal aan wat basiskennis.

[ Voor 84% gewijzigd door RobIII op 10-06-2005 14:27 ]

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

Topicstarter
bedankt!
het is al een stuk duidelijker,
maar ik heb ff geprobeerd wat je zei:
lblSom1.Caption = "De som van " & a & " en" & b & " is: " & c
maar dan krijg ik een 'invalid qualifier' op lblSom1.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op vrijdag 10 juni 2005 @ 14:32:
bedankt!
het is al een stuk duidelijker,
maar ik heb ff geprobeerd wat je zei:
lblSom1.Caption = "De som van " & a & " en" & b & " is: " & c
maar dan krijg ik een 'invalid qualifier' op lblSom1.
Dan moet je maar eens leren debuggen en foutmeldingen interpreteren. We kunnen hier niet alles voorkauwen. De fout geeft duidelijk aan wat het probleem is, en ik heb het ook al eens genoemd (zie "ten eerste" in mijn vorige post). Je hebt een variabele lblSom1 en een label lblSom1. De foutmelding geeft nu aan dat 'ie probeert van de variabele lblSom1 het .caption property te zetten, maar dat heeft die variabele helemaal niet. Het Label daarentegen wel.

Om op je topictitel dus in te gaan: Het is niet de Dim die iets "laat verdwijnen" maar de dubbele declaratie.

Dit is prima op te lossen door je een een paar uurtjes te verdiepen in wat VB6 tutorials of VB6 boeken en is echt basiskennis die je dient te bezitten voordat je uberhaupt aan programmeren begint.

[ Voor 53% gewijzigd door RobIII op 10-06-2005 14:49 ]

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


  • whoami
  • Registratie: December 2000
  • Laatst online: 06-05 15:36
Mja, ik was eigenlijk van plan om dit topic open te houden, maar als het toch meer en meer neigt naar 'debug dit ff voor me', dan gooi ik 'm toch nog dicht...
Debuggen is iets wat je als programmeur moet leren en kunnen; lees de foutboodschappen, en doe de moeite om ze te begrijpen en de passende actie te ondernemen.

https://fgheysels.github.io/

Pagina: 1