Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Visual Basic While

Sivun loppuun

Nobo [22.09.2005 22:20:18]

#

Do
    DoEvents
   If NappiPainettu(&H21) Then
    While Timer1()
    SendKeys (Text1.Text), True
   End If
        Loop

Eli miten saisin tuohon koodiin sellaisen jutun että kun painaa Page Down näppäintä (If NappiPainettu("H22) Then)
niin tuo While loppuisi?

hunajavohveli [22.09.2005 22:23:07]

#

Eli siis mikä pitäisi loppua? Tuossa on ainoastaan While-silmukan alku. Mihin sen pitäisi loppua?

Nobo [22.09.2005 22:27:21]

#

Do
        DoEvents
       If NappiPainettu(&H21) Then
        While Timer1()
        SendKeys (Text1.Text), True
        Wend
       End If
        Loop

Siis tuossa se koodi. Ja tuo while siis pitäisi loppua heti kun on painettu Page Down.
Sori on vähän huonosti selitetty..

hunajavohveli [22.09.2005 22:31:03]

#

Ensinnäkin korvaa "While-Wend"-rakenne "Do While-Loop"-rakenteella. Silloin voit poistua silmukasta Exit-komennolla. Elikkäs:

Do While Timer1()
  If PageDownOnPainettu Then Exit Do
Loop

Nobo [22.09.2005 22:41:34]

#

Kiitoksia. ;) Nyt toimii.

Nobo [23.09.2005 15:49:29]

#

Ähh, eipä toimikaan. Koitin sitä ja sain errorit pois, mutta nyt kun kokeilin niin se ei kuitenkaan toiminut.
Voisit(te)kohan sanoa koko tuon koodin?

Gaxx [23.09.2005 18:03:36]

#

While Timer1() -> While Not NappiPainettu("H22)

Olettaen, että nyt haluat "while wendin" loppumaan.

Nobo [23.09.2005 18:12:20]

#

Gaxx, en saanut toimimaan. Koitin ensiksi kirjoittaa tuon "While Timer1() -> While Not NappiPainettu(&H22)" While Timer1() tilalle, mutta siitä tuli vain error.

Sitten koitin pelkkä While Not NappiPainettu(&H22) ja se toimi muuten paitsi, että tuo while ei pysähtynyt vaikka painoin oikeaa nappia enkä saanut lisättyä siihen timeriä.
Voisitkohan sanoa tuon koko koodin?

Gaxx [23.09.2005 18:48:02]

#

Do
    DoEvents
    If NappiPainettu(&H21) Then
    While Not NappiPainettu(&H22)
        SendKeys (Text1.Text), True
    Wend
    End If

Loop

Tuollaisena sitä puheidesi perusteella kokeilit, mutta ei kai toiminu. Itelläni ainakin toimii.

Voi olla, että NappiPainettu funkkarissasi on vikaa. Tässä yksinkertainen funktio nappien tilojen tutkimiseen:

GetAsyncKeyStaten esittely:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Ja itse funktio:

Private Function NappiPainettu(number As Long)
    If GetAsyncKeyState(number) Then
        NappiPainettu = True
    Else
        NappiPainettu = False
    End If
End Function

Nobo [23.09.2005 19:14:25]

#

NappiPainettu jutussa ei kyllä ollut vikaa, ainakin se muuten toimi hyvin paitsi sitten tuossa While Not jutussa.
Koitin sitten samaa koodia, mutta NappiPainettun vaihoin GetASyncKeyStateksi. Kyllähän se muuten toimi, muttei taaskaan sammunut siitä Page Down näppäimestä. Erroreita ei tullut yhtään.
Onko sitten muita keinoja jolla saisi tuon toimimaan? Esim. vaihtamalla Whilen Untiliin tai jotain..? Niin ja se timer pitäisi sinne vielä saada.

Gaxx [23.09.2005 21:07:14]

#

Ongelman täytyy olla SendKeys()-funktiossa. Sitä kun ei oikein sovi looppeihin — ainakaan omien kokemusteni perusteella. Kun testasin tuota koodia, käytin sen tilalla Print "moro":a. Kokeileppa sinäkin :)

Nobo [23.09.2005 22:59:50]

#

Kappas vaan. :/ Outoa, että oon kuitenkin ennen saanut SendKeysin loopilla toimimaan.. tai sitte oon nähny unta?


Sivun alkuun

Vastaus

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

Tietoa sivustosta