Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 281
  • Last Modified:

Load Splash Screen

What code do I use to make my splash screen functional.  ie. make it visible until the rest of the application is loaded and ready to go then hide it.  This is probably simple but I'm not sure how to do it.  Any help would be appreciated.

0
jakemail
Asked:
jakemail
1 Solution
 
SirNickCommented:
I have always done this by using a timer and show the splash screen on form_load() plus enabling the timer to about 2 seconds.  
When the timer is triggered it with hide the splash screen

The code I use goes something like this.

-----------------------------------
private sub form_load()
  Splash1.show
  Timer1.enabled = true
end sub

-----------------------------------

private sub timer1_()
  splash1.hide
  timer1.enabled = false
end sub

---------------------------------

I am not sure whether this is the right way but it works.

Hope this helps.
0
 
Erick37Commented:
This will display a splash screen for as long as it takes to load frmMain.  Add a delay if you want to show the screen longer.

'~~~~Splash Code~~~~

Private Sub Form_Load()
    Show
    Refresh
    Load frmMain
    Hide
    frmMain.Show
    Unload Me
End Sub
0
 
RuchiCommented:
Splash Form:

Private Sub Form_Load()
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Static timertime As Integer
timertime = timertime + 1
If timertime = 5 Then
Form2.Show
Unload Me
Set Form1 = Nothing
End If
End Sub

Form2:
Private Sub Form_Load()
Form1.Hide
End Sub
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
anthonycCommented:
All three of those solutions are ugly.  Why do I need a timer to show a splash screen?  

The 2nd solution is a little better, however, it doesn't lead itself to a generic splashscreen object.

Use a SUB MAIN.  

Public Sub Main
  Load frmSplash
  with frmSplash
    .AppTitle = app.title
    .SubTitle = "blah blah blah"
    .Show
  end with

  'Do all initialization work here
 
  'notice, LOAD, without show.  
  load frmMain

  unload frmSplash
  set frmSplash = nothing
  doevents
  frmMain.show
end sub
0
 
3rsrichardCommented:
The MS recommendation is

Private Sub Main()
   ' Show the splash screen.  
   frmSplash.Show
   ' Add your startup procedures here.
   …
   ' Show the main form and unload the splash screen.
   frmMain.Show
   Unload frmSplash
End Sub

0
 
anthonycCommented:
MS solution is good, but sometimes you'll have both the splash and the main up.  Even if for a short time.  They can collide with one another on slower machines and give a graphics flicker.
0
 
amebaCommented:
I found this is the best way (smooth, user friendly multitasking):

Public Sub Main()
    frmSplash.Show
    DoEvents
    Load frmMain ' open db, ...
    DoEvents
    If GetActiveWindow = frmSplash.hWnd Then
        SetWindowPos frmSplash.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOSIZE Or SWP_NOMOVE
        frmMain.Show
        SetWindowPos frmSplash.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOSIZE Or SWP_NOMOVE
    Else
        SetWindowPos frmMain.hWnd, frmSplash.hWnd, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOSIZE Or SWP_NOMOVE
    End If
    DoEvents
    If Len(Command) Then
       ' do something
    End If
    Unload frmSplash
    Set frmSplash = Nothing
End Sub
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now