18. april 2006 - 22:58Der er
25 kommentarer og 1 løsning
Indsætte tal i textbox for hvert sekund
Jeg vil gerne bede om hjælp til kode til nedenstående forløb. command1 Indsætte tal i textboxe for hvert sekund 16 gange Fort hvert sekund: text1.text = ”1” text2.text = ”2” text3.text = ”3” osv msgbox “Slut”, sluttid command2 Indsætte tal i textboxe for hvert andet sekund 16 gange Fort hvert andet sekund: text1.text = ”1” text2.text = ”2” text3.text = ”3” osv msgbox “Slut”, sluttid
command3 Indsætte tal i textboxe for hvert halve sekund 16 gange Fort hvert halve sekund: text1.text = ”1” text2.text = ”2” text3.text = ”3” osv msgbox “Slut”, sluttid
Det er tænkt som en udbygning af dette program. http://www.eksperten.dk/spm/703130 Det skal være et spil. Mine børnebørn skal klikke på tallene i ovenstående kode. Samtidig skal programmet automatisk men synligt kontinuerligt udfylde nogle tomme tekstbokse på samme form. Og så drejer det sig altså om at være hurtigere end computeren. Så der er sådan set mening med galskaben.
>sjh For resten ville jeg have givet dig nogle point for din deltagelse i spørgsmålet,http://www.eksperten.dk/spm/703130, men jeg kom altså til at "glemme", at du også havde kommenteret. Jeg glemte altså dit "svar."
>Såvidt jeg kan se virker din kode sådan, at for fx hvert sekund bliver samlige textboxe 1-3 udfyldt på én gang. Det var ikke sådan jeg mente. Meningen er, at for fx 1. sekund skal textbox1 udfyldes med tallet"1" , 2. sekund skal der skrives "2" i textbox2, 3. sekund skal der skrives "3" i textbox3 osv. Og efter msgboxen skal programmet så slutte. I øjeblikket fungerer det som en uendelig lykke - medmindre jeg har gjort noget forkert. PS Husk venligst lige det med at "svare"
Private Sub Form_Load() Randomize Timer1.Interval = 1000 ' 1 sekund End Sub
Private Sub Timer1_Timer() Static nSec As Long Static arrNumber() As Long Select Case nSec Case 1: Text2.Text = arrNumber(nSec) Case 2: Text3.Text = arrNumber(nSec) Case 3: Text4.Text = arrNumber(nSec) ' osv.. Case 11: Text12.Text = arrNumber(nSec) Case Else nSec = 0 arrNumber = RandArray(1, 12) ' arrNumber er fra 0 til 11 men de tal som er i det er fra 1 til 12 Text1.Text = arrNumber(nSec) End Select nSec = (nSec + 1) End Sub
Private Function RandArray(ByVal Low As Long, ByVal High As Long) As Long() Dim i As Long Dim nRnd As Long Dim nFree As Long Dim arrTemp() As Long Dim arrRandom() As Long If Low <= High Then ReDim arrTemp(0 To High - Low) As Long ReDim arrRandom(0 To High - Low) As Long For i = 0 To (High - Low) arrTemp(i) = (i + Low) Next nFree = UBound(arrRandom) + 1 For i = 0 To UBound(arrRandom) nRnd = Int(nFree * Rnd) arrRandom(i) = arrTemp(nRnd) nFree = (nFree - 1) arrTemp(nRnd) = arrTemp(nFree) Next RandArray = arrRandom() Else ReDim RandArray(0) As Long End If End Function
>sjh Jeg tiger mange tak og accepterer dit svar, selvom jeg ikke har prøvet det endnu. Jeg får desværre ikke tid til at prøve det i aften, men jeg håber på din assistance efterfølgende, hvis det mod forventning ikke skulle lykkes.
>sjh Det var jo meget kode for så få point.:o)) Når jeg anvender din kode, får jeg i text1.text 2 tal.. men ikke noget i text11.text. Kunne du ikke tilpasse den, så den kom til at se sådan ud: Select Case nSec Case 1: Text1.Text = arrNumber(nSec) Case 2: Text2.Text = arrNumber(nSec) Case 3: Text3.Text = arrNumber(nSec) Case 4: Text4.Text = arrNumber(nSec) Case 5: Text5.Text = arrNumber(nSec) Case 6: Text6.Text = arrNumber(nSec) Case 7: Text7.Text = arrNumber(nSec) Case 8: Text8.Text = arrNumber(nSec) Case 9: Text9.Text = arrNumber(nSec) Case 10: Text10.Text = arrNumber(nSec) Case 11: Text11.Text = arrNumber(nSec) Case 12: Text12.Text = arrNumber(nSec) og så skal der bare vises tallene fra 1 til 12 inkl. Det skal altså ikke være tilfældige tal. Please. Vi må finde ud af evt. flere points, hvis de 100 ikke rækker.
Private Sub Timer1_Timer() Static nSec As Long nSec = (nSec + 1) Select Case nSec Case 1: Text2.Text = nSec Case 2: Text3.Text = nSec Case 3: Text4.Text = nSec Case 4: Text4.Text = nSec Case 5: Text5.Text = nSec Case 6: Text6.Text = nSec Case 7: Text7.Text = nSec Case 8: Text8.Text = nSec Case 9: Text9.Text = nSec Case 10: Text10.Text = nSec Case 11: Text11.Text = nSec Case 12: Text12.Text = nSec: nSec = 0 End Select End Sub
>Sådan, sjh! En sidste lille ting. Rutinen skal først begynde, når jeg trykker på fx command1.click. Kan du fikse det her til slut? TAk! Og tak for hjælpen. Den har måske ikke mening for andre end mig, men den SKAL være sådan.
Private Sub Command1_Click() ' Enabled omvendt af det som den er.. fx: ' Hvis Enabled er True så bliver den False ' eller hvis Enabled er False bliver den True ' - ' Så kan du både starte og stoppe den ved at klikke på en knap. With Timer1 ' <- Timer .Enabled = Not .Enabled End With
' ellers kan du bare selv starte den med: ' Timer1.Enabled = True ' - ' og stoppe den med: ' Timer1.Enabled = False End Sub
Private Sub Form_Load() With Timer1 ' <- Timer .Enabled = False ' Enabled til False (Stop) eller True (Start) .Interval = 1000 ' 1 sekund End With End Sub
Du skal bruge 12 txtboxt og 2 command-click Private Sub Command1_Click() ' Enabled omvendt af det som den er.. fx: ' Hvis Enabled er True så bliver den False ' eller hvis Enabled er False bliver den True ' - ' Så kan du både starte og stoppe den ved at klikke på en knap. With Timer1 ' <- Timer '.Enabled = Not .Enabled Timer1.Enabled = True
End With
' ellers kan du bare selv starte den med: ' Timer1.Enabled = True ' - ' og stoppe den med: ' Timer1.Enabled = False End Sub
Private Sub Form_Load() With Timer1 ' <- Timer .Enabled = False ' Enabled til False (Stop) eller True (Start) .Interval = 500 ' 1 sekund End With End Sub
'Private Sub Command1_Click() 'Timer1.Interval = 500 ' 1 sekund 'End Sub
' nSec = (nSec + 1) 'End Sub
Private Sub Timer1_timer() Timer1.Interval = 500 ' 1 sekund Static nSec As Long nSec = (nSec + 1) Select Case nSec Case 1: Text1.Text = nSec Case 2: Text2.Text = nSec Case 3: Text3.Text = nSec Case 4: Text4.Text = nSec Case 5: Text5.Text = nSec Case 6: Text6.Text = nSec Case 7: Text7.Text = nSec Case 8: Text8.Text = nSec Case 9: Text9.Text = nSec Case 10: Text10.Text = nSec Case 11: Text11.Text = nSec Case 12: Text12.Text = nSec: nSec = 0 Timer1.Enabled = False
Okay, jeg kan ikke prøve det lige nu, men når jeg for chancen skal jeg nok prøve!
Tak
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.