Gå til innhold

Hvordan repetere en sekvens?


Anbefalte innlegg

Jeg trenger hjelp til å repetere en output-sekvens. Sekvensen skal gå en gitt tid som velges i "TextBox1" . Et klikk på "ButtonStop" skal kunne stanse det hele selv om ikke tiden har gått.

 

Jeg bruker VB.net 2008 Express edition.

 

Slik ser det ut nå:

 

Private Sub ButtonRun_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonRun.Click

doutSS.SetSingleValue(1)

Sleep(500)

doutSS.SetSingleValue(2)

Sleep(500)

doutSS.SetSingleValue(3)

Sleep(500)

doutSS.SetSingleValue(4)

Sleep(500)

End Sub

 

Håper noen der ute kan hjelpe meg videre.

Lenke til kommentar
Videoannonse
Annonse

Bruk en for løkke for dette.

Syntaksen er

 

FOR (Variabel) = (Start) TO (Stopp) [sTEP (antall steg per iterasjon)]

...

NEXT

 

F.eks.

 

For X As Integer = 0 To 100

Console.WriteLine(X.ToString())

Next

 

1 er standard for STEP hvis ikke du setter noen annen verdi

 

I Ditt tilfelle vil du telle fra 1 to 4

 

For i As Integer = 1 To 4
 doutSS.SetSingleValue(i)
 System.Threading.Thread.Sleep(500)
Next

 

Hvis du vil telle baklengs, må du sette step

 

For x As Integer = 100 To 0 Step -1
 Console.WriteLine(x.ToString())
Next

Lenke til kommentar

Takk for hjelpen GeirGrusom.

 

Jeg har nå prøvd dette:

 

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
           For i As Integer = 1 To 8 Step 5
               doutSS.SetSingleValue(i)
               System.Threading.Thread.Sleep(500)
           Next
       End Sub

 

Det er mulig jeg misforstod deg, men når koden ser ut som overstående, så får jeg bare output "1", og der blir det stående. Jeg prøvde å ta bort "Step 5", og da fikk jeg hele sekvensen som output. Skal "Step" stå på en annen måte?

 

Hva med mulighet for å avbryte en sekvens med en stoppknapp?

 

Hvorfor skriver du "System.Threading.Thread.Sleep ()" i stedet for "Sleep ()"?

 

Som du sikkert skjønner, så er jeg ikke så veldig erfaren med programmering.

Lenke til kommentar

Nå skjønner jeg. Så hvis jeg skriver "1 To 8 Step 2", så vil jeg bare få oddetall(?)

 

Men hvordan skal jeg få den til å starte på nytt når den er fredig med output 8, igjen og igjen og igjen og igjen og igjen...?

 

En slags Do...Until-fuksjon, kanskje?

Lenke til kommentar

Er det virkelig ingen der ute som kan hjelpe meg med dette.

 

Jeg har fått til å repetere sekvensen nå ved hjelp av Do...Loop, men problemet er da å få stoppet den igjen. Slik jeg har det nå så er eneste mulighet å lukke hele programmet. Sånn kan det jo ikke være.

 

Jeg må, som tidligere nevnt i tråden, kunne kjøre sekvensen i loop (e.l.) i en gitt tid/ antall repetisjoner, og/eller kunne stoppe den ved hjelp an en knapp.

Lenke til kommentar

.... Sekvensen skal gå en gitt tid som velges i "TextBox1"

 

Har du ikke en timer kontroll i verktøykassa da? Legg hele sulamitten inn i timer-tick-sub'en og sett f.eks. timer-interval lik 1000. Da har du en klokke som utfører sakene dine 1 gang pr. sekund og som er lett å kontrollere med timer-enabled lik false/true.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...