Gå til innhold

Anbefalte innlegg

Heisann.

 

Driver med et bitte lite program her.

Jeg har lagd 4 kommando-knapper i en form (altså ikke store greiene)

Når jeg holder tab inne da, så blar programmet fortløpende mellom de 4 knappene.

Det jeg lurte på da, var om det er mulig å få programmer til å gjøre dette selv!? Burde vel ha inn en sleep så ikke pc'n rulerer mellom de knappene i 2000km/t! hehe :p

Tusen takk for all hjelp! :D

 

Sindre

Lenke til kommentar
Videoannonse
Annonse

Kan gjøres på flere måter, men her er to:

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_GotFocus()
   wait 100
   Command2.SetFocus
End Sub

Private Sub Command2_GotFocus()
   wait 100
   Command3.SetFocus
End Sub

Private Sub Command3_GotFocus()
   wait 100
   Command4.SetFocus
End Sub

Private Sub Command4_GotFocus()
   wait 100
   Command1.SetFocus
End Sub

Private Sub wait(dwMilliseconds As Long)
   DoEvents
   Sleep dwMilliseconds
End Sub

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim EndLoop As Boolean

Private Sub Form_Load()
   Me.Show
   Do Until EndLoop = True
       DoEvents
       Command1.SetFocus
       Sleep 10
       Command2.SetFocus
       Sleep 10
       Command3.SetFocus
       Sleep 10
       Command4.SetFocus
       Sleep 10
   Loop
End Sub

Private Sub Form_Unload(Unload As Integer)
   EndLoop = True
   End
End Sub

Ville muligens vært litt lettere å gjøre hvis du hadde et array av CommandButtons :roll:

Lenke til kommentar
' ...
Private Sub Form_Unload(Unload As Integer)
   EndLoop = True
   End
End Sub

Man benytter aldri END-kommandoen for å avslutte en applikasjon. Dette kan medføre store minnelekasjoner, især ved eldre versjoner av Windows, ettersom programmet ikke deallokerer de ressurser det har benyttet. Det holder lenge nok å avslutte alle pågående løkker og avlaste alle åpne former:

 

Public Sub ExitApp()

   Dim Form As Form
   
   ' Gå gjennom alle åpne former
   For Each Form In Forms
       ' Avlast formen
       Unload Form
   Next

   ' Du kan eventuelt legge til en global variabel som får alle løkker i programmet til å
   ' avsluttes når den innstilles til True.
   ' bExit = True

End Sub

 

Koden ovenfor skal med andre ord legges inn i prosjektet. Form_Unload vil da skrives som følger:

 

Private Sub Form_Unload(Unload As Integer)
  EndLoop = True
  ExitApp
End Sub

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...