Invullen van een TextBox tijdens een lus

Status
Niet open voor verdere reacties.

alberto

Gebruiker
Lid geworden
25 mrt 2005
Berichten
9
Hallo,
Ik heb gemerkt dat tijdens het afwerken van een subroutine de TextBox leeg blijft.
Pas als de subroutine beëindigd wordt, verschijnt de tekst.
Voorbeeldje:

Dim i as Integer
Private Sub cmdStart_Click()
textC.Text = ""
For i = 1 to 6
call pause
textC.Text = TextC.Text + Str(i)
Next i
End Sub

Private Sub pause()
...... ' deze routine is ongeveer 10 seconden aan het rekenen
End Sub

Ik zou verwachten dat na 10 seconden een 1 verschijnt, dan 10 seconden later een 2, enz.
Echter zie je pas na 60 seconden 1 2 3 4 5 6 verschijnen.
Ik maak natuurlijk een elementaire fout, maar welke??
Welk programma'tje geeft wél met tussenpozen 1, 2 enz?
Groetjes, Alberto
 
Verplaatst naar een programmeersectie, het is wel makkelijk als je ook even de programmeertaal doorgeeft.
 
Het probleem zit hem hier niet in je code, maar in de manier waarop windows de functie afhandelt. De zogenaamde windows handle wordt pas vrijgegeven, wanneer de hele routine is uitgevoerd. Een eenvoudige oplossing voor dit probleem is het gebruik van een timer. Ik ben niet zo thuis in Visual Basic, maar ik vermoed dat dit component ook daarin wel te vinden is. Een timer wordt namelijk door een interrupt aangeroepen en krijgt telkens een eigen handle.
Een andere methode is om op een wat lager niveau te gaan programmeren en rechtstreeks een eigen handle te creëeren, maar dit is behoorlijk ingewikkelder dan de timer methode. Ik raad je dan ook aan om dat eerst te proberen :D
 
Laatst bewerkt:
zo te zien programmeer je een event in een form. Als je de volgende code toevoegt nadat je de tekstbox hebt gevuld zou het goed moeten gaan.

Code:
me.refresh

Als dat niet werkt kan je er nog een

Code:
Doevents
tussen zetten.

Weest gegroet,
Guus
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan