Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Toiminnon estäminen ajalla *VB*

The Ohjelmoija [11.11.2003 16:25:19]

#

Miten voin tehdä sillain, että kun on tehnyt jonkin jutun, niin ohjelma ei anna tehdä sitä samaa hommaa vaikka 15 minuuttiin?

Heikki [11.11.2003 17:37:17]

#

Ehkä järkevintä olisi toteuttaa se Time() funktiolla vaikka näin:

Dim viimeks As Integer

Private Sub Command1_Click()
'laitetaan taulukkoon taulukko aika erottimella :
taulukko = Split(Time, ":")
'Time=kellonaika
'jos Time on 17:52:43 niin
'taulukko(0)=17
'taulukko(1)=52
'taulukko(2)=43

If taulukko(1) - viimeks < 1 Then
    MsgBox "viime suorituskerrasta on liian vähän aikaa"
Else
    MsgBox "koodia..."
    viimeks = taulukko(1)
End If

End Sub

Eli tuo koodi tarkistaa aina kun commandbuttonia painetaan onko viime suorituskerrasta kulunut alle minuutti.

Antti Laaksonen [11.11.2003 17:48:34]

#

Jos tekeminen liittyy yksittäiseen aliohjelmaan, tee Static-tyyppinen muuttuja aika, jonka arvo säilyy aliohjelman eri kutsukerroilla. Jos aika on 0 (aliohjelmaa ei ole kutsuttu vielä kertaakaan) tai nykyhetken ja sen erotus minuutteina on suurempi kuin 15, haluttu asia tehdään. DateDiff-funktiosta: http://vb.ohjelmointiputka.net/?DateDiff

Private Sub Command1_Click()
    Static aika As Date
    If aika = 0 Or DateDiff("n", aika, Now) > 15 Then
        MsgBox "Nyt tehtiin."
        aika = Now
    Else
        MsgBox "Ei vielä!"
    End If
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta