Banque d’images : gérer les images vides

Dans un des premiers articles de la série Banque d’images, il était question de créer un état à partir des images stockées dans la base.

Petit défaut d’affichage : lorsqu’une image n’est pas renseignée, c’est la dernière image utilisée qui s’affiche sur l’état. Nous allons voir comment traiter ce détail.

Le défaut

Dans l’état qui suit, l’image n°3 n’a pas de chemin (en même temps, c’est un peu incohérent pour un album photo, non ?). On voit que la photo 3 est en fait une reprise de la 2.

banque_images_image_vide_avant.jpg

Première solution

Une première approche va consiste à masquer l’image si sa source est vide. L’objectif étant d’obtenir ceci :

banque_images_image_vide_apres.jpg

Remplacez l’ancien code de l’événement Au formatage de la zone de détail de l’état (jamais écrit autant de « de » dans une phrase 🙂 ) par ceci :

Deuxième solution

Au lieu de masquer la zone d’image, on pourrait aussi afficher une image de remplacement. Ce qui donnerait :

banque_images_image_vide_planche.jpg

Pour obtenir ce résultat :

  1. Placez une image appelée question.jpg dans le même dossier que votre base de données.
  2. Définissez cette constante dans votre état, ou dans un module standard (la deuxième approche est meilleure si la même image doit servir dans plusieurs états).

  1. Modifiez le code de formatage de l’état comme ceci :

Vous aimerez aussi...

3 réponses

  1. Hervé Inisan dit :

    Angel > Pour créer un module, cet article devrait aider. Ensuite, il suffit de recopier la ligne de constante (donnée dans cet article) en haut du module.

  2. Angel dit :

    Re Bonjour,

    Concernant la gestion des image vide :

    Je ne sais pas comment créer un module et positionner une constante « Const IMAGE_PAR_DEFAUT = « question.jpg »

    Je ne sais pas non plus ou j’ écrire dans un etat

    Merci

    Cordialement

  3. LUC dit :

    Super; fonctionnement impéccable.
    Encore merci et certainement à bientôt

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *