IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[Sources] Mettre en évident les champs afin de faciliter la navigation [Fait]


Sujet :

Contribuez

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Points : 270
    Points
    270
    Par défaut [Sources] Mettre en évident les champs afin de faciliter la navigation
    Titre: Animer les champs
    Auteur: Gdal
    Intérêt: Diriger l'utilisateur afin qu'il ne se perde pas.

    Ces deux fonctions permettent de mettre en valeur un champ lorsqu'il reçoit le focus.

    Pour cela mes contrôles sont nommés de cette façon (je suis pas sur que se soit très conventionnel )
    TextBox Txt_Nom
    Label Lbl_Txt_Nom
    ListBox Lst_Nom
    Label Lbl_Lst_Nom

    Et sur les évènements "Sur réception focus" & "Sur perte focus", j'appelle les fonctions "Fct_ReceptionFocus()" & "Fct_PerteFocus()"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    Option Compare Database
    Option Explicit
     
    Function Fct_ReceptionFocus()
     
    On Error GoTo Traitement
     
    'Composition des noms des contrôles
        'TextBox    Txt_Nom
        'Label      Lbl_Txt_Nom
        'ListBox    Lst_Nom
        'Label      Lbl_Lst_Nom
    'Fonctionnement
        'Je récupère le contrôle actif et j'en déduit le label auquel
        'j'applique les apparences
     
        Dim Frm As Form
        Dim Ctl As Control
        Dim TypeCtl As String
        Dim Lbl As String
        Dim CtlLst As String
     
        Set Frm = Screen.ActiveForm
        Set Ctl = Screen.ActiveControl
     
        '********************
        'Type de contrôle
            'Zone de texte [Txt]
            'Liste modifiable [Lst]
            'Bouton de commande [Cmd]
        TypeCtl = Left(Ctl.Name, 3)
     
        'Récupérer le nom du label associé au contrôle
     
        Lbl = "Lbl_" & Ctl.Name
     
        Select Case TypeCtl
        Case "Txt"
        Ctl.SpecialEffect = 2
     
        Case "Lst"
        Ctl.SpecialEffect = 2
        Ctl.Dropdown
     
        Case "Cmd"
     
        End Select
     
        'Police en italic
        Frm(Lbl).FontItalic = True
        'Couleur de la police
        Frm(Lbl).ForeColor = RGB(255, 255, 0)
        'Police souligner
        Frm(Lbl).FontUnderline = True
     
    Traitement:
    Select Case Err.Number
    Case 2475
    Exit Function
    Case Else
    'MsgBox Err.Number & " " & Err.Description
    End Select
     
    End Function
     
    Function Fct_PerteFocus()
     
    On Error GoTo Traitement
     
    'Composition des noms des contrôles
        'TextBox    Txt_Nom
        'Label      Lbl_Txt_Nom
        'ListBox    Lst_Nom
        'Label      Lbl_Lst_Nom
    'Fonctionnement
        'Je récupère le contrôle actif et j'en déduit le label auquel j'applique les apparences
     
        Dim Frm As Form
        Dim Ctl As Control
        Dim TypeCtl As String
        Dim Lbl As String
        Dim CtlLst As String
     
        Set Frm = Screen.ActiveForm
        Set Ctl = Screen.ActiveControl
     
        '********************
        'Type de contrôle
            'Zone de texte [Txt]
            'Liste modifiable [Lst]
            'Bouton de commande [Cmd]
        TypeCtl = Left(Ctl.Name, 3)
     
        'Récupérer le nom du label associé au contrôle
        Lbl = "Lbl_" & Ctl.Name
     
        Select Case TypeCtl
        Case "Txt"
        Ctl.SpecialEffect = 0
     
        Case "Lst"
        Ctl.SpecialEffect = 0
     
        Case "Cmd"
     
        End Select
     
        'Police en italic
        Frm(Lbl).FontItalic = False
        'Couleur de la police
        Frm(Lbl).ForeColor = RGB(204, 255, 255)
        'Police souligner
        Frm(Lbl).FontUnderline = False
     
    Traitement:
    Select Case Err.Number
    Case 2475
    Exit Function
    Case Else
    'MsgBox Err.Number & " " & Err.Description
    End Select
     
    End Function
    Ainsi le champ peut changer de forme, de couleur, ....

    Gdal

    PS: Merci à tous les membres de Developpez.com pour leur aide, leur site, et leur boulot....

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Comment ça changer de forme ?

    Pour la couleur, la police etc, il y a aussi la mise en forme conditionnelle qui nécessite aucun code

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Points : 270
    Points
    270
    Par défaut
    Bonjour,

    Apparence plutôt.....
    Par exemple sur la base que je suis en train de réaliser.
    La couleur de fond des formulaires est bleu et par défaut tous les contrôles sont en deux dimensions et le label associé est en bleu clair.
    Lorsque le champ reçoit le focus sur un champ texte, par exemple, l'apparence de ce champ est modifié (3D enfoncé, ....) sa police pourrait-être également changée, et son label associé passe en italic et en jaune.... Sa créé un effet visuel qui permet à l'utilisateur de mieu se repérer (surtout pour ceux qui aiment se déplacer dans les formulaires avec la tabulation)

    quand à la forme conditionnelle je me vois mal reprendre tous les contrôles d'une base pour modifier un paramètre (couleur ...). Alors qu'avec la fonction il suffit que j'ajoute ou modifie une ligne et s'est l'ensmble de la base qui est modifié.

    Voili voulou

    Gdal

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    De toute façon, la mise en forme conditionnelle ne s'applique pas aux label

    quand à la forme conditionnelle je me vois mal reprendre tous les contrôles d'une base pour modifier un paramètre
    Et bien selectionne tous les contrôles auxquel tu veut appliquer la mise en forme conditionnelle et applique la sur l'ensemble

    De même tu peux aussi l'appliquer en VBA

  5. #5
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    C'est vrai que le principe d'utiliser des constantes ou des variables, et des fonctions génériques, ce qu'a cherché à faire Gdal, est une bonne habitude pour coder proprement et efficacement.

    Cependant dans ce cas précis, je rejoins Tofalu puisque ma préférence va aussi à l'utilisation de la mise en forme conditionnelle.

    Certes, il y a un côté rabarbatif de la mise à jour. Mais ce travail concerne la partie développemnt de l'appli et non son usage courant par l'utilisateur final.

    Si au niveau de l'utilisation courante de l'appli, il faut éviter au maximum les tâches rébarbatives, quitte à ajouter quelques lignes de codes, il n'en est pas nécessairemzent de même au niveau du développement.

    Si au moment du développement, passer du temps à définir "manuellement" les objets et leur propriétés peut permettre d'éviter du code définitif, alors mieux vaux effectivement passer un plus de temps au départ et avoir à l'arrivée un code minimal.

    J'ai bien dit "éviter du code définitif" car on peut également se créer du code "provisoire" qui ne sert qu'au moment du developpement. Dans cette dernière optique, programmer la MFC via VBA peut être une solution comme l'a rappelé Tofalu. Et une fois l'appli développée, on vire le code en question.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/01/2011, 12h53
  2. Réponses: 2
    Dernier message: 18/05/2008, 17h05
  3. mettre en couleur les champs non renseignés.
    Par maysa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/09/2007, 20h15
  4. [Conception] Mettre a jour tout les champs d'un table lors d'un update
    Par metatron dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/09/2006, 16h29
  5. mettre des Zero a tous les champ null d'un coup
    Par LesLemmings dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2006, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo