Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Timerin Kiihtyvyys Pois VB6

Thugcln [12.01.2006 03:50:02]

#

Tässä on koodin pätkänen :
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
SendKeys Text1.text
SendKeys "{ENTER}"
End Sub

Ja ohjelman tarkoitus on toistaa tekstiä mikä on teksti laatikossa. Ainut vika kuitenkiin on, että alkuun se menee sopivaa vauhtiä, mutta heti sen jälkeen alkaa kauhea kiihtyvyys ja kone jöksähtää ? Tietääkö kukaan mitä pitää tehdä ?

Merri [12.01.2006 04:57:52]

#

Vinkki niille jotka menevät halpaan ja testaavat ylläolevaa koodia: sen saa pysäytettyä painamalla Ctrl + Pause/Break.

"Kiihtyvyys" johtuu siitä, että Text1.Text kasvaa kokoajan, jolloin lisättävän tekstin määrä kasvaa kokoajan moninkertaiseksi. Tällöin yhä suurempi ja suurempi osa ajasta menee entisen tekstin lisäämiseen ja vähitellen timerin koodi alkaa jo tapahtua vielä useampia kertoja "päällekkäin", koska timer on aika epätarkka ja toisekseen tekstin lisäämisessä kestää kauemmin kuin mitä timeriin asetettu aikaväli on. Lopulta päädytään siihen, että komentoja aletaan puskuroida koska niitä ei ehditä enää suorittamaan samantien ja tämän takia koodi jatkaa juoksuaan vielä sittenkin kun sen pysäyttää.

Hinc [20.01.2006 14:40:11]

#

eli tolla saisi koneen tukkoon, laittamalla pari lisätaimeria, ja text2:n, samaan ohjelmaan, eli ne menisi päällekkäin. tarpeeks kaua ku jauhaa ni eiköhä ohjelma käyttäisi kaiken tehon prosessorista?

hunajavohveli [20.01.2006 15:11:17]

#

No kyllähän kaiken tehon saa käyttöön ihan yksinkertaisesti tekemällä vaikka ikuisen silmukan:

Do
Loop

Vastaus

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

Tietoa sivustosta