I want to limit the time an input box is presented...

I have a typical INPUT BOX FUNCTION. It brings up a question and sits waiting for input then the OK button. How can I control the time that the box is presented (I want about 5 seconds) before it the code moves on past it?
aaagarbAsked:
Who is Participating?
 
amebaConnect With a Mentor Commented:
OK. Here is modification.

Private Sub Command1_Click()
      With Timer1
         .Interval = 5000
         .Enabled = True
      End With
      Dim ret As String
      ret = InputBox("I should disappear in five seconds.", MsgTitle, "default value")
End Sub

0
 
ChizlCommented:
Create your own InputBox and name the function InputBoxEx
0
 
aaagarbAuthor Commented:
Sorry, but your answer is confusing. I don't understand your intention.
Could you offer the code and explain yourself please?
0
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

 
amebaCommented:
This is e-mail, written by Karl E. Peterson

It's not really that tough.  Timers are only blocked in the IDE, and will continue to
work in an EXE.  Here's an example.  This works *if* compiled.  Fails otherwise.
Paste this code into a form with a timer and a command button.

Enjoy...   Karl


   Option Explicit
   Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
   Private Const WM_CLOSE = &H10
   Private Const MsgTitle As String = "Test Message"

   Private Sub Command1_Click()
      With Timer1
         .Interval = 2000
         .Enabled = True
      End With
      MsgBox "I should disappear in two seconds.", , MsgTitle
   End Sub

   Private Sub Timer1_Timer()
      Dim hWnd As Long
      Timer1.Enabled = False
      hWnd = FindWindow(vbNullString, MsgTitle)
      Call SendMessage(hWnd, WM_CLOSE, 0, ByVal 0&)
   End Sub

0
 
jjmartinCommented:
I think what Chizl is going for is this.  Create your own form that you will display as an input box.  The form will have a label for the prompt to the user, a text box or whatever you need for the users input, and an OK button.  You can also put on a timer control that you can use to limit the time that the input form is displayed.

When you display the form, fill the label with the appropriate prompt for the user, and on the form load, start the timer function that will kill the form after a set time.
0
 
ChizlCommented:
Thanx jjmartin,
I thought that was pretty clear, but guess not.
0
 
aaagarbAuthor Commented:
ameba...this works perfectly if you use an information box. However, I am using an input box which does not go away until you press OK. Can you think of a way to modify your code to accomplish this with an input box.?

0
 
aaagarbAuthor Commented:
works fine..thanks for persevering.

0
 
ChizlCommented:
I think he was looking for someone to catch the fish for him not learn how to catch the fish for himself.
0
 
amebaCommented:
Nooo, MsgTitle was on a wrong place. It confused me, also.
0
 
ChizlCommented:
No, I was talking about aaagarb or is ameba = aaagarb?  Both seem to be really confused.  MsgTitle being is the wrong place confused you and it's your code.
0
 
amebaCommented:
>really confused (RC)
OK. I can prove you everybody can be RC. See your e-mail box in a minute.
0
 
ChizlCommented:
Mathmatics is a wonderful thing..  :)
0
 
ChizlCommented:
Now that I know who you are..  
0
 
aaagarbAuthor Commented:
Not the forum for "can you top this?" wars.
Thanks both for your time and comments.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.