Tässä on toteutettu Pilailuohjelman Wait-komento yksinkertaisemmin. Tämä ei ole tarkka sekunti, mutta se säästää 20 riviä. Ei tarvitse myöskään mitään alkumäärittelyjä tai muita muuttujia kuin sen sisältämät.
Moduuli:
Sub Main() Wait 5 End Sub
Aliohjelma:
Private Sub Wait(Sekunnit As Long) Dim iRet As String iRet = Str(Sekunnit * 333333) For i = 0 To Val(iRet) DoEvents Next i End Sub
... Tai sitten voi säästää tuosta vielä nuo kymmenen riviä ja määritellä Windowsin Sleep-funktion, joka on taatusti paljon tarkempi kuin tuo, tai edes käyttää GetTickCountia. Sitä paitsi tuo ei todellakaan toimi täsmällisesti edes omalla koneellasi, eikä taatusti toimi toisella koneella samassa ajassa. Ja tuossa, jonka halusit tällä korvata, vielä lukeekin, että se ei käytä prosessoria, kun taas tämä nostaa prosessorin käyttöasteen sataan prosenttiin.
3/10 rivii menee kyl sub mainiin... ja toi on (ainakin olevinaan) suhteellisen tarkka
niinno joo...
mut tota kertointa voi muuttaa koneen mukaan
Ihan hyvin voisi inttää että Sleep-funktiokin syö 4 riviä.
Private Declare Function Sleep Lib "user32" (ByVal MilliSeconds As Long) As Double 'eka rivi Private Sub Form_Load() 'toinen rivi Sleep 1000 'kolmas rivi End Sub 'ja neljäs
tai jotain tollasta
Kymmenen riviä? Neljä riviä? Aikamoista optimointia? :/
Joo. Tässä muuten toinen odottelija (heitto max 10 millisekuntia ylöspäin eikä tiletä sovellusta kuten perus Sleep)
Private Declare Sub Sleep Lib "user32" (ByVal dwMilliSeconds As Long) Private Sub Venttaa(MilliSekat As Long) a = Timer + (MilliSekat * 1000) Do Until Timer > a Sleep 10 DoEvents Loop End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.