Toon posts:

[VB6]Vertraging inbouwen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi!

Ik zou op een of andere manier een vertraging moeten inbouwen in mijn programma, ik weet dat er timer's zijn en heb het daar ook al mee geprobeerd maar het lukt me maar niet goed, het is de bedoeling dat er een vertraging is in een for lus dus zo

for intTeller=1 to 7
..Statements
call vertraging
next intTeller

Dus een functie die de uitvoer van m'n for lus vertraagt hoe kan ik dit realiseren?

Alvast bedankt,

Pcmodders

  • ismael86
  • Registratie: Oktober 2001
  • Laatst online: 19-05 21:57
Zoek eens naar de sleep functie
sleep <milliseconden>

[ Voor 28% gewijzigd door ismael86 op 13-11-2004 14:45 ]


Verwijderd

Topicstarter
Als ik daar naar zoek dan moet ik een stukje code erbij zetten die kernel32 oproept, maar dan zie ik wel niets van m'n programma .. kanje een voorbeeldje geven hoe het WEL juist moet !

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Visual Basic .NET:
1
2
3
4
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Wait(secs)
    Sleep (1000 * Val(secs))
End Sub

Zo heb ik het staan. Maar met googlen had je dat zelf ook kunnen vinden trouwens.

Ey!! Macarena \o/


Verwijderd

Topicstarter
[Overbodig]

[ Voor 94% gewijzigd door Verwijderd op 13-11-2004 17:16 ]


Verwijderd

Topicstarter
Ook dit laatste laat mijn programma bevriezen :S

[ Voor 182% gewijzigd door Verwijderd op 13-11-2004 17:18 ]


Verwijderd

Topicstarter
Ik gebruik nu deze:

Public Sub Delay(lngSeconds As Long)
Dim lngStart As Long
lngStart = Timer

Do While Timer <= lngStart + lngSeconds
DoEvents
Loop
End Sub


Maar ik heb de fout in vb gevonden, bij een form_load roep ik een functie op die een delay heeft, en daarom bevriest mijn programma hij voert het volgens mij wel keurig uit, hoe kan ik dit voorkomen?

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:14

RayNbow

Kirika <3

Verwijderd schreef op zaterdag 13 november 2004 @ 18:22:
Ik gebruik nu deze:

Visual Basic:
1
2
3
4
5
6
7
8
Public Sub Delay(lngSeconds As Long)
  Dim lngStart As Long
  lngStart = Timer

  Do While Timer <= lngStart + lngSeconds
    DoEvents
  Loop
End Sub



Maar ik heb de fout in vb gevonden, bij een form_load roep ik een functie op die een delay heeft, en daarom bevriest mijn programma hij voert het volgens mij wel keurig uit, hoe kan ik dit voorkomen?
offtopic:
Gebruik svp code tags

Back on topic:
Die Delay sub is niet geheel veilig. Timer geeft het aantal verstreken seconden sinds middernacht. De waarde die wordt teruggegeven zit tussen de 0 en 24*3600-1=86399. Als je dus bijvoorbeeld 5 seconden wil wachten en Delay wordt 1 seconde voor middernacht aangeroepen, dan wacht Delay net zolang totdat Timer de waarde 86399+5=86404 teruggeeft, wat nooit gebeurt.

Over Form_Load, de code in die event moet zo kort/snel mogelijk zijn. Je Form wordt namelijk pas getoond als de code in Form_Load uitgevoerd is. Vertragingen daarin bouwen moet vermeden worden, tenzij je een goede reden hebt (ik kan zelf geen goede reden verzinnen).

Ipsa Scientia Potestas Est
NNID: ShinNoNoir

Pagina: 1