Eli miten sais ohjelman odottamaan vaikkapa 2sekunttia
rautalankaa kiitos =)
Odotuksen voi tehdä vaikka näin:
Sub Odota(aika As Single)
Dim alku As Single
alku = Timer
While Timer - alku < aika
DoEvents
Wend
End SubSeuraava koodi tulostaa tekstiä, odottaa kaksi sekuntia ja tulostaa lisää tekstiä.
Private Sub Form_Click()
Print "Alku"
Odota 2
Print "Loppu"
End SubWinAPIssa on myös aliohjelma Sleep, joka määritellään näin ohjelman alussa:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Nyt odotusaika annetaan millisekunteina:
Private Sub Form_Click()
Print "Alku"
DoEvents
Sleep 2000
Print "Loppu"
End SubKomennot Odota ja Sleep toimivat hieman eri tavoin. Odota vaikuttaa ainoastaan koodin suoritukseen, eli ohjelmaa pystyy käyttämään muuten (esim. muuttamaan ikkunan kokoa tai kirjoittamaan tekstiä tekstikenttään) odotuksen aikana. Sleep taas seisauttaa ohjelman kokonaan niin, ettei se ota vastaan mitään käyttäjän viestejä. Komentoa DoEvents käytetään juuri ohjelman jumiutumisen estämiseksi.
Kiitos! nyt onnistui.
Vielä sellainen kysymys että miten tuon saa toimimaan form loadissa
Moikka jaskapoika!
Älä pukkaa sitä...
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long): Public n As Integer
Form_Load tapahtumaan vaan...
Private Sub Form_Resize() If n = 0 Then: Print "Alku": DoEvents: Sleep 2000: Print "Loppu": n = 1: DoEvents: Sleep 2000: Cls End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.