Wat je hiervoor nodig hebt:
1) Een module.
2) Eén Form, dit is het hoofdform waar al je werkelijke
codes hier moeten gaan bevatten. Maar omdat het hier
slechts ter voorbeeld dient, is dit hoofdform helemaal
nog leeg. Als je straks het programma runt, dan
verschijnt er eerst het splashcreen en na enkele
seconden verdwijnt het weer, waarna het hoofdscherm
verschijnt maar verder niets doet.
3) Eén Form, het SplashScreen Form zelf(waar het om
gaat eigenlijk) met daarin een label en een timer. Het
label bevat de simpele tekst "Dit is een SplashScreen"
Daar gaan we:
a) Module: (onderstaande zit in de sectie: General Main
en niet bij General Declarations;je kunt hier trouwens
ook Options Explicit invoeren)
Je copieert onderstaande code gewoon in een module
en komt alles wel vanzelf goed)
Code:
Private Sub Main()
'Hier wordt het splashcreen als eerste geladen en
' tevens getoond, omdat bij Project/Properties
'/Tabblad General bij "Startup Object", '"Sub Main"
'staat geselecteerd.
SplashScreen.Show
'Hier wordt het HoofdForm alleen geladen, dus (nog)
'niet getoond.
Load HoofdScherm
'Op dit punt beland, krijg je eventueel de kans wat
'zaken te initialiseren. In elk geval wat operaties te
'laten verrichten.
'Dit hoeft natuurlijk niet per sé, het is maar wat je wilt.
Do
DoEvents
Loop Until SplahScreen.ReadyToClose
'Hier is de tijd voor het zichtbaar zijn v.h.
'splashscreen 'Form reeds verstreken en zal ook v.h.
'scherm moeten verdwijnen om 'plaats te maken voor
'het hoofdscherm.
HoofdScherm.Show
Unload SplashScreen
Set SplashScreen = Nothing
End Sub
b) HoofdForm
Zoals eerder gezegd, is dit form leeg. Ik weet immers
niet wat je wilt gaan programmeren. Maar zo'n lege
Form is voorlopig niet zo erg, het is maar om even te
kunnen testen of dit scherm ook getoond wordt nadat
het splashscreen verdwenen is.
c) Het SplashScreen Form
Op dit Form plaats je een label met bijvoorbeeld de
tekst "Dit is een SplashScreen" en een Timer met de
naam "tmrSplash".
Als laatste neem je code van het SplashScreen Form
hieronder over:
Bij General_Declarations:
Code:
Private Timer_Afsluiten As Boolean
'Duurte v.d. Timer(Hoe lang het SplashScreen zichtbaar
blijft)
Private Const Duurte As Single = 3#
Bij Form_KeyDown:
Code:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Als op de ESC-toets wordt gedrukt.
If KeyCode = vbKeyEscape Then
ReadyToClose = True
tmrDuurte.Enabled = False
Me.Hide
End If
End Sub
Bij Form_Load
Code:
Private Sub Form_Load()
On Error Resume Next
'Timer instellen
ReadyToClose = False
tmrSplash.Interval = Duurte * 1000
tmrSplash.Enabled = True
Me.KeyPreview = True
Me.MousePointer = vbHourglass
Me.Show
DoEvents
End Sub
Bij tmrSplash_Timer
Code:
Private Sub tmrSplash_Timer()
On Error Resume Next
tmrSplash.Enabled = False
ReadyToClose = True
End Sub
En verder bij de Get en Let: (hoop, dat je ook weet hoe
je bij die Events kunt komen. Maar ik denk van wel, je
bent best al ver met VB)
Code:
Public Property Get ReadyToClose() As Boolean
ReadyToClose = Timer_Afsluiten
End Property
Code:
Private Property Let ReadyToClose(ByVal Flag As Boolean)
Timer_Afsluiten = Flag
End Property
Al met al zou het eigenlijk nog simpeler kunnen, lijkt mij.
Oefen anders maar ff.
Dennis.