Le Splash-Screen ou comment donner une touche professionnelle à vos applications.
Date de publication : 07/05/2005 , Date de mise à jour : 13/07/2006
Par
Fabrice CONSTANS (autres articles)
Qui n'a jamais rêvé de mettre en place les mêmes petites fenêtres qui apparaissent à l'ouverture
des logiciels professionnels ? Si la présence de ces petites boîtes
n'apportent pas de fonctionnalités supplémentaires, la facilité de mise en oeuvre,
hormis l'aspect graphique, peut apporter un réel plus esthétique et pourquoi pas, faire
un peu de publicité gratuite.
1. Avertissement
2. Pré requis - Graphiques et textes
2.1. L'image
2.2. Le texte
3. Le formulaire
3.1. Mise au point visuelle
3.2. Le code
3.3. Afficher des informations supplémentaires
3.4. Les réglages
4. Intégration du Splashscreen
4.1. Par Macro
4.2. Par l'option Formulaire de démarrage
4.3. Par procédure VBA
7. Versions postérieures à Access 2000
8. Conseils
9. Remerciements
1. Avertissement
 |
L'utilisation de la touche F1
est vivement conseillée à tous les stades de
l'utilisation d'ACCESS. L'amélioration constante
de l'aide en fait un partenaire de choix dans
l'apprentissage permanent d'ACCESS.
Personnellement, je ne peux m'en passer, ne
serait-ce que pour mémoire.
|
2. Pré requis - Graphiques et textes
Pour réussir un bon splash-screen, à part le côté programmation,
il faut choisir une belle police de caractères et un beau graphique
de préférence en ayant un rapport avec le logiciel.
Vous pouvez vous inspirer de ceux des grands logiciels comme Adobe Photoshop,
Paint Shop Pro ou Adobe Acrobat.
2.1. L'image
Pour l'image, prenez un bon logiciel de retouche photo, du type Adobe
Photoshop Element, Paint Shop Pro ou The Gimp, ce dernier est gratuit
et très performant.
Choisissez une police de caractères sur de nombreux sites existants.
La plupart proposent des centaines de polices gratuites.
 |
Donner du relief à votre image en appliquant un effet de style "bouton".
|
Sauvegardez votre image au format GIF ou JPG (JPEG) normalement vous pouvez
avoir une belle image pour une quinzaine de kilo-octets. L'exemple ci-dessous
est un gif de 10 kilo-octets.

Pas de reconversion possible pour moi dans l'infographie !
2.2. Le texte
Il ne faut pas oublier que le splash-screen ne reste pas indéfiniment affiché.
Ne chargez pas trop en texte, et choisissez une taille suffisamment grande pour que
l'utilisateur puisse le lire sans effort.
Mettez les informations habituelles comme le nom de l'application, ceux des concepteurs et
n'oubliez pas le logo du client et de votre société.
 |
Ne mettez pas le numéro de version de l'application, sinon vous devrez faire
des modifications de l'image à chaque nouvelle livraison.
|
3. Le formulaire
3.1. Mise au point visuelle
Ouvrez une base de données et créer un formulaire vierge.
Insérez l'image en utilisant le contrôle Image et cadrez-la en haut
à gauche.
Réglez les propriétés suivantes :
| Propriétés |
Valeur |
| Affichage autorisé |
Formulaire |
| Barre défilement |
Aucune |
| Afficher sélecteur |
Non |
| Boutons de déplacements |
Non |
| Diviseurs d'enregistrements |
Non |
| Taille ajustée |
Non |
| Auto centrer |
Oui |
| Boîte contrôle |
Non |
| Boutons MinMax |
Aucun |
| Bouton Fermer |
Non |
| Bouton Fermer |
Non |
| Style bordure |
Aucun |
Mettez-vous en mode consultation et utilisez la souris pour
régler les dimensions du formulaire.
Une fois l'opération effectuée, repassez en mode création et
modifiez la dernière propriété du formulaire.
| Propriétés |
Valeur |
| Fen modale |
Oui |
Pour éviter de voir le fond du formulaire, colorez-le en gris
| Propriétés |
Valeur |
| Couleur fond |
8421504 |
et réduisez la taille du fond et du formulaire pour qu'il colle à l'image.

Le réglage des bords.
A ce stade, vous pouvez faire un essai. Pour cela, commencez par enregistrer
le formulaire, le nom de frmSplashScreen semble tout indiqué, fermez-le puis
rouvrez-le pour qu'il s'affiche au milieu de la fenêtre ACCESS.
(propriété Auto Centrer = Oui)

Pas mal... non ?!
3.2. Le code
Une des fonctions les plus méconnues d'Access est certainement
la minuterie. Celle-ci n'est présente que sur les objets formulaires.
Sa mise en oeuvre se fait à deux niveaux :
- La définition d'un intervalle de temps (exprimé en millisecondes)
- La procédure qui sera exécutée toutes les n millisecondes.
| Propriétés |
Valeur |
| Intervalle minuterie |
1000 |
| Sur minuterie |
[Procédure événementielle] |
La procédure événementielle vise à ouvrir le formulaire principal de
l'application et à fermer le formulaire au bout de n millisecondes.
| Le code de fermeture. |
Private Sub Form_Timer()
Me.TimerInterval = 0
DoCmd.OpenForm "frmMenuPrincipal"
DoCmd.Close acForm, Me.Name
End Sub
|
TimeInterval correspond à la propriété Intervalle minuterie. Celle-ci doit être remise à zéro.
 |
Si la minuterie n'est pas remise à zéro,
cela peut entraîner une instabilité voire un blocage du système.
Seul l'arrêt de la tâche MSACCESS.EXE dans le gestionnaire
du même nom (ctrl+alt+del) peut débloquer la situation.
|
Dans un deuxième temps, on ouvre un formulaire, en principe c'est votre menu.
Puis on ferme le SplashScreen.
3.3. Afficher des informations supplémentaires
Dans un SplashScreen, outre les renseignements statiques, vous souhaiterez
peut-être afficher des informations dynamiques comme un numéro de version
ou bien le nom de l'utilisateur.
Pour cela nous devons créer une étiquette.
- Ouvrez le formulaire en mode création,
- Ajouter une étiquette où vous souhaitez voir figurer l'information,
- Écrivez "Version-User" à l'intérieur,
- Donner-lui une largeur suffisante.
- Allez dans le menu Format et choisissez Mettre au premier plan,
- Afficher les propriétés en changer le nom en lblVersion.
Cliquez sur le carré en haut à gauche pour sélectionner les propriétés du formulaire.

Carrée ! la zone...
Créez une procédure sur l'évènement Sur réception focus comme nous avons fais précédemment.
Écrivez le code suivant dans la procédure.
| Le code d'affichage |
me.lblVersion.caption = "V. 1.0 - " & Environ("USERNAME")
me.lblVersion.caption = "V. 1.0 - " & CurrentUser
|
3.4. Les réglages
Les réglages sont simples car ils ne concernent que le temps d'affichage.
Pour les modifier il suffit de jouer sur la valeur de la propriété
Intervalle minuterie.
La partie SplashScreen est terminée.
4. Intégration du Splashscreen
L'intégration du SplashScreen peut se faire à plusieurs niveaux, puisqu'il existe
plusieurs manières d'ouvrir un formulaire au démarrage.
4.1. Par Macro
Vous pouvez lancer le formulaire par la macro de démarrage :
- Ouvrez une macro vierge
- Insérez l'action OuvrirFormulaire
- Dans Nom formulaire, indiquez le nom : frmSplashScreen
- Affichage : Formulaire
- Mode fenêtre : Standard
- Enregistrez la macro sous le nom : Autoexec
4.2. Par l'option Formulaire de démarrage
Vous pouvez également utiliser les options de démarrage d'Access du menu Outils/Démarrer....

Des options très utiles.
4.3. Par procédure VBA
Lorsque vous souhaitez effectuer d'autres tâches au démarrage de votre application, préférez plutôt
la procédure VBA.
Pour cela, procédez comme pour un démarrage par Macro (Autoexec) mais indiquez
l'action ExécuterCode à la place de OuvrirFormulaire.
Donnez le nom de la procédure ; dans notre cas, il s'agit de Startup.
Ouvrez un nouveau module et créez une procédure (Sub) que vous nommerez StartUp().
| La procédure à exécuter au démarrage. |
Sub Startup()
DoCmd.OpenForm "SplashScreen", acNormal
DoEvents
DoCmd.Close acForm, "SplashScreen", acSaveNo
End Sub
|
Il est évident que dans ce cas la fermeture est conditionnée par une procédure externe
(DoCmd.Close acForm, "SplashScreen", acSaveNo).
Il est donc impératif que le splashscreen ne commande pas lui même sa fermeture. Pour cela, il suffit
simplement de mettre la minuterie à 0.
7. Versions postérieures à Access 2000
Il a été constaté, à partir d'ACCESS 2002, que le splash-screen
n'apparaît pas toujours.
Ce problème se produit lorsque du code est exécuté après l'appel du
formulaire splash-screen.
Après quelques tests, la solution à apporter est l'insertion d'un DoEvents
immédiatement à la suite de l'affichage du SplashScreen.
- Si vous avez choisi l'ouverture via les options de démarrage,
insérez le DoEvents au début de votre procédure qui suit.
- Si vous avez choisi l'ouverture via une procédure
au démarrage placez le DoEvents après le Docmd.OpenForm "SplashScreen".
Le DoEvents à pour effet de terminer toutes les tâches avant de
continuer l'exécution.
8. Conseils
C'est ici que se termine ce tutoriel. Nous avons vu qu'un splashscreen n'est pas compliqué à réaliser,
le plus difficile étant le choix et la réalisation d'un graphique. N'oubliez pas que si vous désirez
que votre application s'affiche en plein écran, ne le faites pas tant que le splashscreen ne sera pas fermé.
9. Remerciements
Je tiens à remercier :
Cerbères pour le temps passé en relecture et correction.
Tequila pour avoir mis en lumière le problème constaté avec les versions
ultérieures d'Access 2000.
Jean-Louis HUBICHE pour ses judicieuses remarques de dernière minutes.
ndlr : Apparement chez les HUBICHE on pratique ACCESS de père en fils... et c'est
une bonne chose.
À l'équipe de Developpez.com pour la qualité du site.
À Nono40 pour son super éditeur XML qui se bonifie avec le temps comme un vieux Pommard.
Je présente mes plus plates excuses à ceux que j'aurais omis de remercier.


Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.