En komt die fout echt op die tijd regel?
1
| Dim tijd As Integer |
nou
1
| Public tijd As Integer |
maakt en dat helemaal boven in je code zet (buiten een procedure of functie) dan zou het moeten werken.
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.
Verwijderd
[ Voor 72% gewijzigd door Verwijderd op 04-09-2004 20:18 . Reden: oeps ]
日本!🎌
Misschien handig om het zoekwoord "scope" daarbij te geven.farlane schreef op 04 september 2004 @ 20:06:
Sla er eens een helpfile of boek op na zou ik zeggen, je zult het nodig hebben.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
2) Waar heb je hem gedefiniëerd ?
3) Ken je globaal variabelen ?
4) Post anders je gehele code eens, met zo'n [code'] blablabladimpublicVBstuff [/code'] maar zonder het ' dan.
1
| Dan ziet dat er dus zo uit ;-) |
"the fucking alpha cpp compiler seems to fuck up the goddam type "LPITEMIDLIST", so to work around the fucking peice of shit compiler we pass the last param as an void *instead of a LPITEMIDLIST"
Dim werkt bovenaan ook gewoon wel hoorExterazzo schreef op 04 september 2004 @ 10:11:
Als je van
code:
1 Dim tijd As Integer
nou
code:
1 Public tijd As Integer
maakt en dat helemaal boven in je code zet (buiten een procedure of functie) dan zou het moeten werken.
Verwijderd
Mijn idee ook, met nog wat uitleg.Sponge schreef op 04 september 2004 @ 10:06:
Waar heb je die tijd = tijd +1? ook in de form_load? of ergens anders. Als je he mergens anders hebt, zet hem dan boven alles, dan is de variabele overal te gebruiken in je form.
En komt die fout echt op die tijd regel?
Variabelen gedefinieerd in een procedure zijn daarbuiten niet bruikbaar. Als een variabele in meerdere procedures (methodes) benaderbaar moet zijn, kan je er een (member)variabele van je formulier-klasse van maken.
In VB doe je dit door bij de globals van het formulier (het gedeelte tussen option
explicit en de eerste procedure) een private variabele te definieren:
-------------
option explicit
private tijd as integer
private sub Form_Load()
tijd = 0
end sub
private sub MijnSubje()
tijd = tijd +1
end sub
Verwijderd
Initialiseer even op tijd = 0 of wat je ook maar moet hebben en kijk dan nog 's.
Verwijderd
Als je twijfelt aan declaraties van variabelen kan je de volgende trucs gebruiken:
- klik in het pop-menu bij rechts-klikken op een variabele "goto definition"
- via menu "project" of "build": kies "build all" en kijk waar het schip strand
[ Voor 9% gewijzigd door Verwijderd op 04-09-2004 23:37 ]
Die meneer vertelt duidelijk dattie zijn variabele declareert in form_load. Buiten form_load heb je er dus niets aan.Verwijderd schreef op 04 september 2004 @ 22:49:
De fout zit em dus waarschijnlijk in dat die variabele op een lege string wordt geinitialiseerd en daar kun je dus geen getallen mee optellen.
Initialiseer even op tijd = 0 of wat je ook maar moet hebben en kijk dan nog 's.
En 'scope' is idd het woord waarop gezocht moet worden. Misschien is het ook verstandig om het gedeelte over modules en classes/forms/objecten een wat nader te bestuderen.
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.
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
| Private Sub Command1_Click() Timer1.Enabled = True tijd.Caption = "" End Sub Private Sub Command2_Click() Timer1.Enabled = False End Sub Private Sub Form_Load() Dim tijd tijd = 0 End Sub Private Sub Timer1_Timer() If tijdbox.Text = tijd Then Form2.Show Timer1.Enabled = False tijd.Caption = "Eindigd" Else tijd = tijd + 1 tijd.Caption = tijd End If End Sub |
Als ik de Dim Tijd weglaat of Dim Tijd As Integer doet ie het ook niet
geeft steeds fout op de regel:
1
| tijd = tijd + 1 |
Type Mismatch geeft ie dus
Joris
Zoals Farlane ook al zegt, je probleem is de scope van de variabele tijd. Zoals mensen je al eerder hebben verteld moet je tijd niet declareren in je Form_Load routine maar boven in de module als een globale variabele.DJ_Jorizzz schreef op 06 september 2004 @ 13:54:
Heb nu dit:
code:
1 2 3 4 Private Sub Form_Load() Dim tijd tijd = 0 End Sub
Als ik de Dim Tijd weglaat of Dim Tijd As Integer doet ie het ook niet
geeft steeds fout op de regel:
In de post van Bloog kun je precies zien hoe je je probleem moet oplossen.
1
2
3
4
5
6
7
8
9
| Option Explicit Private tijd As Integer [etc] Private Sub Form_Load() tijd = 0 End Sub |
PS: Misschien ook wel een aardig idee om eens wat in te springen in je code. Komt de leesbaarheid een hoop ten goede!
[ Voor 10% gewijzigd door Lorn op 06-09-2004 14:33 ]
Beste Joris, heb je de posts gelezen die boven deze staan, en gezocht op de steekwoorden die je aangereikt staan ?DJ_Jorizzz schreef op 06 september 2004 @ 13:54:
Heb nu dit: .....
Als je wilt leren met VB ( of elke andere taal for that matter ) moet je bij het begin beginnen. ( De introduction pagina van de help file dus ( *kuch*[F1] *kuch* )
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.
Wenk van Henk: noem je label lblTijd en je variabele varTijd. En declareer dan je variabele op de juiste plaats.
1
2
| tijd = tijd + 1 tijd.Caption = tijd |
Getver!
De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland
Verder komen er nogal wat ranzigheden naar voren met je naamgeving. Als iets een appel is, moet je er opeens een banaan van maken en dan vragen aan de banaan naar de appelprijs
Anyway, met deze hints (en natuurlijk de eerder genoemde postings) moet je er verder wel uit kunnen komen.
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Dit topic is gesloten.
![]()