Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 779
hei og hopp... Jeg driver fortsatt på det samme prosjektet hvis noen fikk med seg den forrige tråden.
Visual Basic er tingen her.

Problemet nå er sånn at jeg har en timer og etter 5 sekunder (bare brukte det før å prøve)
så bytter den ut cmdbuttons...
Men jeg har prøvd å få opp en label som den skal telle ned på, men den viser ikke noe før telleren har telt seg ferdig, da viser den "0".
Skulle gjerne hatt den til å vise 5, 4, 3 osv...

her kommer den koden jeg har så hvis noen gidder å se over og rette/legge til ting og tang.

Kode

Private Sub cmdGiopp_Click()
    End
End Sub

Private Sub lblTimer_Click()
    If tmrTid.Interval = 0 Then lblTimer.Caption = "5"
    ElseIf tmrTid.Interval = 1000 Then lblTimer.Caption = "4"
    ElseIf tmrTid.Interval = 2000 Then lblTimer.Caption = "3"
    ElseIf tmrTid.Interval = 3000 Then lblTimer.Caption = "2"
    ElseIf tmrTid.Interval = 4000 Then lblTimer.Caption = "1"
    ElseIf tmrTid.Interval = 5000 Then lblTimer.Caption = "0"
    End If
End Sub

Private Sub Timer1_Timer()
    cmdOption1.Visible = False
    cmdOption2.Visible = False
    cmdOption3.Visible = False
    cmdOption4.Visible = False
    cmdOption21.Visible = True
    cmdOption22.Visible = True
    cmdOption23.Visible = True
    cmdOption24.Visible = True
End Sub

Private Sub tmrTid_Timer()
    If tmrTid.Interval = 0 Then lblTimer.Caption = "5"
    If tmrTid.Interval = 1000 Then lblTimer.Caption = "4"
    If tmrTid.Interval = 2000 Then lblTimer.Caption = "3"
    If tmrTid.Interval = 3000 Then lblTimer.Caption = "2"
    If tmrTid.Interval = 4000 Then lblTimer.Caption = "1"
    If tmrTid.Interval = 5000 Then lblTimer.Caption = "0"
End Sub
Tror ikke det er her feilen ligger. Tror det ligger der hvor du kaller lblTimer_Click() eller noe. Regner med at dette ikke er all koden?
Trådstarter
21 0
dette er koden som er aktuell å rette på... den andre delen av koden er irrelevant for dette emnet...

hmm, men ser at det står _click på labelen... noen andre forslag til hva jeg kan bruke?
Sist endret av Tathar; 13. februar 2007 kl. 09:05.
Vel, Intervallen til timeren forandrer seg ikke, bare hvis du setter den til noe annet, der har du feilen..
Og Det skal ikke skje i timer_click, det er vel en eller annen event f.eks timer_tick (du får se)
Trådstarter
21 0
Sitat av flexd
Vel, Intervallen til timeren forandrer seg ikke, bare hvis du setter den til noe annet, der har du feilen..
Og Det skal ikke skje i timer_click, det er vel en eller annen event f.eks timer_tick (du får se)
Vis hele sitatet...

hmm.... fikk ikke helt til.... kan du legge ut et forslag?
Det er jo bare å sette intervallet til 1000 og bytte ut koden.

obs! forutsetter en variable som er global i klassen med navnet iTeller satt til verdien 0

Kode

Private Sub Timer1_Timer()
  iTeller = iTeller + 1
  lblTimer.Caption = 5 - iTeller
  If iTeller = 5 Then
	cmdOption1.Visible = False
	cmdOption2.Visible = False
	cmdOption3.Visible = False
	cmdOption4.Visible = False
	cmdOption21.Visible = True
	cmdOption22.Visible = True
	cmdOption23.Visible = True
	cmdOption24.Visible = True
  End If
End Sub
Eller hvis du vil beholde 2 timere så kan du lage det som slik.
Timer1 intervallet må være 5000.
tmrTid intervallet må være 1000.

Kode

Private Sub Timer1_Timer()
  cmdOption1.Visible = False
  cmdOption2.Visible = False
  cmdOption3.Visible = False
  cmdOption4.Visible = False
  cmdOption21.Visible = True
  cmdOption22.Visible = True
  cmdOption23.Visible = True
  cmdOption24.Visible = True
End Sub
 
Private Sub tmrTid_Timer()
  iTeller = iTeller + 1
  lblTimer.Caption = 5 - iTeller
End Sub
Hvis du setter lblTimer.Caption til 5 før du starter tmrTid, så kan du bruke lblTimer.Caption til å telle på eks.

Kode

Private Sub tmrTid_Timer()
  lblTimer.Caption = CInt(lblTimer.Caption) - 1
End Sub
Trådstarter
21 0
det fungerte veldig bra så takk for hjelpen

Men nå kom enda et problem :

noen som vet hvordan man legger inn en lyd i VB?
har en .wav fil som skal knyttes opp mot en spesiell event....

Kode

Const SND_ASYNC = &H1

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal  lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

/*
' Play a WAV file.
'
' FileName is a string containing the full path of the file.
' If SyncExec is True, the sound is played synchronously
' Returns True if no errors occurred
*/

Function PlayWAV(FileName As String, Optional SyncExec As Boolean) As Boolean
	If SyncExec Then
		' play the file synchronously
		PlayWAV = PlaySound(FileName, 0, 0) 
	Else
		' play the file asynchronously
		PlayWAV = PlaySound(FileName, 0, SND_ASYNC) 
	End If
End Function
Fant det som første treff på google, så du kan lese på orginalen også.

Vil annbefale at du putter koden i en modul fil (.bas)