home *** CD-ROM | disk | FTP | other *** search
- Visual Basic: Load time problem solution.
-
- When a Visual Basic application is launched, the mouse cursor is
- changed to hourglass mode. Unfortunately, the cursor reverts back to
- the arrow pointer long before the application is loaded. The load time of
- a VB application is effected by the number of objects which are placed on
- the designated Startup form and the code associated with the objects. A
- user may become confused about the state of the application and double
- click it's icon again causing additional instances of the application to
- be launched. This problem is far more evident on slower machines.
-
- Fortunately, the cause of the problem can be implemented as the solution.
- Simply create a small "banner" form as the Startup form. This form should
- contain only two objects; a label with a caption telling the user to wait
- while the program loads (Label1) and a timer (Timer1). The properties for
- the form are all defaults except for the following: ControlBox = False;
- MaxButton = False, MinButton = False; BorderStyle = 0 - None. The Timer is
- enabled with an interval of 1. For best effect, dimension the form to
- match the size of Label1. Listed below are the subroutines associated with
- the banner form. The Form_Load procedure will complete before the Timer1_Timer
- event is invoked.
-
- Sub Form_Load ()
- Screen.MousePointer = 11 ' Hourglass cursor
- Banner.Left = (Screen.Width - Banner.Width) / 2 ' Center message Left/Right
- Banner.Top = (Screen.Height - Banner.Height) / 2 ' Center message Top/Bottom
- End Sub
-
- Sub Timer1_Timer ()
- Timer1.Enabled = 0 ' False - Turn off the timer
- Load MainForm ' Load form with Visible Property set to False
- MainForm.Visible = -1 ' True - Keep it hidden until the load is complete
- End Sub
-
- In the main form, the only housekeeping that needs to be done to
- conclude this technic is unloading of the Startup form and resetting the
- mouse.
-
- Sub Form_Load ()
- ..... do miscellaneous housekeeping and setup routines here .....
- Unload Banner ' Eliminate user's message
- Screen.MousePointer = 0 ' set to normal Arrow Pointer
- End Sub
-
- Using these routines will keep the mouse as an hourglass for most of the
- time required to launch the program. Use Banner.Label1.Caption to provide
- additional status reports to the user for applications which perform
- extensive operations prior to releasing control to the user. Use
- Banner.Label1.Refresh to get the message out promptly.
-
- An additional method for improving loading speed is to use the MainForm strictly as the
- application's menu. Only the code for loading other forms should be placed in the
- MainForm. Using small, single purpose forms will keep overall coding simpler and more
- readable.
-