NEO ::: TEAM
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

NEO ::: TEAM

New Evolution Owner
 
AccueilRechercherDernières imagesS'enregistrerConnexion
-20%
Le deal à ne pas rater :
-200€ Smart TV LG 65″ 4K QNED MiniLED
799 € 999 €
Voir le deal

 

 Comment faire un écran d'accueil (splash screen) ?

Aller en bas 
AuteurMessage
pinkfloyd
Modérateur
Modérateur



Nombre de messages : 27
Age : 39
Date d'inscription : 04/12/2006

Comment faire un écran d'accueil (splash screen) ? Empty
MessageSujet: Comment faire un écran d'accueil (splash screen) ?   Comment faire un écran d'accueil (splash screen) ? Icon_minitimeLun 8 Jan - 15:16

Si au lancement de votre application, une fenêtre ne s'affiche pas instantanément, cela donnera une impression de lourdeur et de lenteur d'exécution à l'utilisateur. Le chargement de la fenêtre principale d'un programme pouvant être relativement long, il est courant d'afficher un écran d'accueil, qui apparaît immédiatement, et qui reste visible pendant le chargement du reste du programme.


Nous allons créer une procédure Main qui sera chargée :

  • d'afficher l'écran d'accueil
  • d'afficher la fenêtre principale
  • de fermer l'écran d'accueil après un délai à spécifier
Le délai sert à laisser l'écran d'accueil visible au moins quelques secondes, même dans le cas où l'ouverture de la fenêtre principale serait quasi instantanée.


Pour créer l'écran d'accueil, ajoutez une form au projet et nommez-la frmSplash. Enlevez sa barre de titre en donnant la valeur False à la propriété ControlBox et en ne mettant aucun texte dans la propriété Caption. Vous pouvez aussi, si vous le souhaitez, enlever la bordure de la fenêtre en donnant la valeur 0 à la propriété BorderStyle. Donnez la valeur 2 à la propriété StartUpPosition. Posez ensuite un timer et nommez-le "tmr". Puis collez ce code source dans le module de la feuille :




vb

Dim sec As Long
Dim delai As Long

Private Sub Form_Load()

tmr.Enabled = False
tmr.Interval = 1000
sec = 0
AuSommet Me.hwnd

End Sub

Public Sub CloseAfter(ByVal attente As Long)

tmr.Enabled = True
delai = attente

End Sub

Private Sub tmr_Timer()

sec = sec + 1
Me.Print sec
If sec >= delai Then Unload Me

End Sub]
Dans la procédure Form_Load, l'appel à la fonction AuSommet permet de spécifier que cette form doit toujours se trouver au premier plan. Ainsi elle ne sera pas cachée par la fenêtre principale. Ajoutez une autre form au projet et nommez-la frmMain. Placez enfin ce code dans un module standard :




vb

Private Const SWP_NOMOVE = 2
Private Const SWP_NOSIZE = 1
Private Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Private Const HWND_TOPMOST = -1

Private Declare Function SetWindowPos Lib "USER32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Public Function AuSommet(hwnd As Long) As Long

AuSommet = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)

End Function

Sub Main()

frmSplash.Show
DoEvents
frmMain.Show
'fermeture au bout de 2 secondes
frmSplash.CloseAfter 2

End Sub
Revenir en haut Aller en bas
 
Comment faire un écran d'accueil (splash screen) ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NEO ::: TEAM :: Informatique :: Les RADs :: Microsoft Visuel Basic-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser