Quote from GATrader:
Could someone here help me w/ a timer event. I am writing a VB program which takes quotes from IB's server using ActiveX. i need to pause between my request data functions in order to give IB time to get the quotes. Is there a way to do that. I have been playing around with the timer function to no success. To simplify things, if I want to print "Hello" then "world" but need to print them 10 seconds apart. How can I do that? Thanks in advance.
Go through this example of an alarm clock and you can see how to setup a timer control to check the system time (Time function) every 1/2 second or so. You don't want to bog things down by checking too fast, like every millisec, if you only want a resolution in seconds. Then you can easily count the seconds up to 10. To use this example just drop a Timer control on a form, enable and set the Interval to something like 500.
Option Explicit
Dim AlarmTime
Const conMinimized = 1
Private Sub Form_Click()
AlarmTime = InputBox("Enter alarm time", "VB Alarm", AlarmTime)
If AlarmTime = "" Then Exit Sub
If Not IsDate(AlarmTime) Then
MsgBox "The time you entered was not valid."
Else ' String returned from InputBox is a valid time,
AlarmTime = CDate(AlarmTime) ' so store it as a date/time value in AlarmTime.
End If
End Sub
Private Sub Form_Load()
AlarmTime = ""
End Sub
Private Sub Form_Resize()
If WindowState = conMinimized Then ' If form is minimized, display the time in a caption.
SetCaptionTime
Else
Caption = "Alarm Clock"
End If
End Sub
Private Sub SetCaptionTime()
Caption = Format(Time, "Medium Time") ' Display time using medium time format.
End Sub
Private Sub Timer1_Timer()
Static AlarmSounded As Integer
If lblTime.Caption <> CStr(Time) Then
' It's now a different second than the one displayed.
If Time >= AlarmTime And Not AlarmSounded Then
Beep
MsgBox "Alarm at " & Time
AlarmSounded = True
ElseIf Time < AlarmTime Then
AlarmSounded = False
End If
If WindowState = conMinimized Then
' If minimized, then update the form's Caption every minute.
If Minute(CDate(Caption)) <> Minute(Time) Then SetCaptionTime
Else
' Otherwise, update the label Caption in the form every second.
lblTime.Caption = Time
End If
End If
End Sub