probleem met het achter elkaar uitvoeren van een commando

Status
Niet open voor verdere reacties.

adri49

Gebruiker
Lid geworden
15 aug 2005
Berichten
6
Ik ben bezig te proberen een kort programmaatje in elkaar te zetten om een kniepeesreflex te laten zien. Nu heb ik een knop gemaakt om die te laten verlopen, maar als ik die aanklik gebeurt alles wel, maar je ziet pas het resultaat als de hele code doorlopen is. Aangezien ik eerst plaatje 1 wil laten zien, dan plaatje 2 en daarna weer plaatje 1 is dat lastig. Want je ziet dus alleen plaatje 1. Ik heb tussen de stappen een lus ingebouwd om er voor te zorgen dat de tijd tussen het tonen van de twee plaatjes ongeveer 2 seconde is. Ik heb het ook geprobeerd met een timer functie die 2 seconde wacht voordat ie weer verder gaat.
Als ik dus eerst -plaatje 1 laat vertonen dan na een lus of timer na 2 seconde plaatje 2 wil laten zien en daarna na 2 seconde weer plaatje 1, dan zie ik op mijn scherm alleen plaatje 1.
Als ik na de code voor het tonen van plaatje 2 een 'exit sub' plaats (waardoor dus de routine wordt onderbroken en naar het eind gaat), dan verschijnt plaatje 2 wel.
Ik heb dus een nieuwe poging gedaan door eerst maar eens te kijken of text-velden worden gevuld.
Zie de code hieronder:

Text5.Text = "start"
Picture2.Visible = False
Text6.Text = "vals"
tijd1 = Right(Time, 2)
tijd2 = Right(Time, 2)
If tijd1 = 58 Then
tijd1 = -2
End If
If tijd1 = 59 Then
tijd1 = -1
End If
If tijd1 = 60 Then
tijd1 = 0
End If
Text1.Text = tijd1
Text2.Text = tijd2

teller = 0
Text3.Text = teller

Do While teller <> 3
tijd3 = Right(Time, 2)
teller = tijd3 - tijd1
Text3.Text = teller
Text4.Text = tijd3
Loop

Picture1.Visible = False
Picture2.Visible = True

Als ik de 'exit sub' onder de regel
Text6.Text = "vals"
plak, dan verschijnt keurig in vak text5 start en in vak 6 vals
Als ik de 'exit sub' echter onder de loop zet, dan verschijnt de tekst in 5 en 6 pas op het moment dat ook vak 3 en 4 gevuld worden en dus niet (wat ik wil) meteen en pas 3 seconde erna de vakken 3 en 4.
Wie kan mij vertellen wat ik fout doe?
 
Goedendag,

Ik hoop dat ik je probleem begrijp.

Voeg bovenaan je programma de volgende regel toe:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

En daar waar jij een moment wilt wachten de volgende regel:
Sleep(1000) 'voor 1 seconde
Sleep(2000) 'voor 2 seconden (etc)

Om een tussentijds resultaat te krijgen kun je het commando DoEvents gebruiken.
Het scherm zal op dat moment ververst worden.

Succes.

groet,
Dave.
 
bedankt

Beste Dave
Fantastisch bedankt
Ik heb het geprobeerd en het werkt.
Dank
groetjes,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan