Avatar billede jones_net Nybegynder
01. november 2001 - 09:57 Der er 13 kommentarer og
1 løsning

Pause 1 sekund

Hejsa

Hvordan får jeg VB6 til at pause i eks. 1 sek, inden den udfører næste linie?

/J
Avatar billede bennytordrup Nybegynder
01. november 2001 - 10:09 #1
Public Declare Sub Sleep Lib \"kernel32\" Alias \"Sleep\" (ByVal dwMilliseconds As Long)

Sleep 1000
Avatar billede jones_net Nybegynder
01. november 2001 - 10:21 #2
Jeg er meget ny i VB, så jeg er ikke helt med...
Jeg skal have nogle frames til at skifte farve een efter een...

Er det noget i denne retning du mener??

Kode:
Option Explicit

Declare Sub Sleep Lib \"kernel32\" (ByVal dwMilliseconds As Long)

Private Sub btnstart_Click()
Frame1.BackColor = &HFF&
Sleep 1000
Frame2.BackColor = &HFF&
Sleep 1000
Frame3.BackColor = &HFF&
Sleep 1000
Frame4.BackColor = &HFF&
Sleep 1000
Frame5.BackColor = &HFF&
lblgo.ForeColor = &O0&
End Sub
Avatar billede bennytordrup Nybegynder
01. november 2001 - 10:29 #3
ja
Avatar billede jones_net Nybegynder
01. november 2001 - 10:33 #4
Så får jeg følgende compile error:
constants, fixed-length strings, arrays, user-defined types and Declare statemants not allowed as Public members of object modules

Så det virker ikke helt:-(

/J
Avatar billede bennytordrup Nybegynder
01. november 2001 - 10:35 #5
erklær den som private

Private Declare Sub Sleep Lib \"kernel32\" Alias \"Sleep\" (ByVal dwMilliseconds As Long)
Avatar billede jones_net Nybegynder
01. november 2001 - 10:43 #6
Hmmm, I\'m closer...

Nu virker sleep, men den lægger alle 4 sleeps sammen, og venter 4 sek, inden den viser noget som helst... altså skifter de alle stadig farve på samme tid, nu venter den bare 4 sek, inden de skifter!?!?!?!?
Avatar billede bennytordrup Nybegynder
01. november 2001 - 10:44 #7
Kald DoEvents efter hver FrameX.BackColor
Avatar billede jones_net Nybegynder
01. november 2001 - 10:47 #8
\"Der var den!!\"
\"fedt:-)\"

Tak for hjælpen:-)
Avatar billede sjh Nybegynder
01. november 2001 - 17:31 #9
Du kan også selv lave en pause. ;)

\'Wait 0.5 \'Wait 1/2 Sec
\'Wait 1 \'Wait 1 Sec

Public Sub Wait(WaitSec)
Dim StartTime As Double
StartTime = Timer
  Do While Timer < StartTime + WaitSec
    If Timer > 86395 Or Timer = 0 Then Exit Do
    DoEvents
  Loop
End Sub

Private Sub Command1_Click()
  Me.BackColor = &H8080FF
  Wait 1 \'Wait 1 Sec
  Me.BackColor = &HFF&
  Wait 1 \'Wait 1 Sec
  Me.BackColor = &HC0&
  Wait 1 \'Wait 1 Sec
  Me.BackColor = &H80&
  Wait 1 \'Wait 1 Sec
  Me.BackColor = &H40&
  Wait 1 \'Wait 1 Sec
  Me.BackColor = Command1.BackColor
End Sub
Avatar billede jones_net Nybegynder
02. november 2001 - 08:51 #10
sjh>> hmmm, ser spændende ud!!
Men jeg er ikke lige VB-haj, så nu spørger jeg måske dumt: Hvorfor skal timer være større end 86395?? Og hvorfor sætter du en DoEvents ind? - er det bare for at VB har noget at lave efter if-sætningen?

/J
Avatar billede bennytordrup Nybegynder
02. november 2001 - 08:58 #11
Hvorfor bruge tid på at lave noget, som allerede er lavet i Windows?
Avatar billede jones_net Nybegynder
02. november 2001 - 11:57 #12
Det var ikke fordi jeg vile lave det, men mere fordi jeg ikke forstod hans kode...
Jeg har lavet og brugt det du har foreslået:-)

/J
Avatar billede bennytordrup Nybegynder
02. november 2001 - 12:10 #13
Det var også mere møntet på sjh
Avatar billede sjh Nybegynder
02. november 2001 - 16:10 #14
Prøv at set tiden til 23:59:45 og kør koden, så stopper koden ikke efter 30 sec. ;-)

Public Sub Wait(WaitSec)
Dim StartTime As Double
StartTime = Timer
  Do While Timer < StartTime + WaitSec
    DoEvents
  Loop
End Sub

Private Sub Form_Activate()
Me.Caption = Val(Timer)
  Wait 30 \'Wait 30 Sec
MsgBox \"Timer er Stoppet\"
End Sub


DoEvents er så du kan flytte vinduet mens Wait køre tiden bliver dov stoppet når du flytter vinduet.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester