Le Splash-Screen ou comment donner une touche professionnelle à vos applications.

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.

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. 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.

II. 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.

II.A. 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.

Image non disponible
Pas de reconversion possible pour moi dans l'infographie !

II.B. 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.

III. Le formulaire

III.A. 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.

Image non disponible
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)

Image non disponible
Pas mal... non ?!

III.B. 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.
Sélectionnez

Private Sub Form_Timer()

	Me.TimerInterval = 0                    ' arret de la minuterie
	DoCmd.OpenForm "frmMenuPrincipal"       ' ouverture du forms de l'application
	DoCmd.Close acForm, Me.Name   			' fermeture du splash

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.

III.C. 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.

Image non disponible
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
Sélectionnez

    ' on inscrit le  de version et l'utilisateur Windows
    me.lblVersion.caption = "V. 1.0 - " & Environ("USERNAME")   

    ' ou bien

    me.lblVersion.caption = "V. 1.0 - " & CurrentUser
   ' ici c'est l'utilisateur Access connecté.

III.D. 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.

IV. 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.

IV.A. 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

IV.B. Par l'option Formulaire de démarrage

Vous pouvez également utiliser les options de démarrage d'Access du menu Outils/Démarrer....

Image non disponible
Des options très utiles.

IV.C. 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.
Sélectionnez

Sub Startup()

    DoCmd.OpenForm "SplashScreen", acNormal           ' ouvrir le splashscreen
    DoEvents                                          ' pour version 2002 et +
' execute les traitements divers
' ....

    DoCmd.Close acForm, "SplashScreen", acSaveNo      ' ferme le splashscreen

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.

V. 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.

  1. 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.
  2. 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.

VI. 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é.

VII. 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.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2005 Fabrice CONSTANS. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.