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

Bases de données Delphi Discussion :

contrôle de saisie sur DBgrid


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 35
    Points
    35
    Par défaut contrôle de saisie sur DBgrid
    Salut ttm,
    j'ai un champ numérique dans une dbgrid, je veux obliger l'utilisateur à mettre une valeur même un zéro et ne pas laisser la cellule vide, comment je puisse contrôler le contenu de la cellule quand l'utilisateur déplace le cusseur vers une autre cellule, et remmetre le curseur sur la même cellule s'il y a une erreur de saisie. Merci d'avance

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Avec OnCellClick, on peut tester si c'est bien la colonne dans laquelle l'utilisateur doit entrer une valeur numérique.
    Avec OnKeyPress, on peut tester si la cellule comporte bien une valeur numérique.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    salut,
    puisque c'est un dbgrid, vous n'avez qu'a ajouté un code a son dataset évenement onnewrecord affecter la valeur 0 à votre chemp.
    Bonne chance.
    Merci.
    Deux, n'apprendront pas; le timide et l'arrogant

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    la solution semble se trouver du coté de TxxField et de son évènement OnValidate.
    voir du coté de l'aide de delphi pour cet objet.

  5. #5
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Citation Envoyé par evarisnea

    la solution semble se trouver du coté de TxxField et de son évènement OnValidate.
    voir du coté de l'aide de delphi pour cet objet.
    Je suis d'accord avec evarisnea il faut éviter de faire des control au niveau des control mais au niveau des tables. par exemple un test de validation de suppression il faut le mettre dans l'événement OnBeforeDelete de tables et non sur l'événement on Click du bouton

  6. #6
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    merci aityahia
    Citation Envoyé par aityahia
    je suis d'accord avec evarisnea il faut éviter de faire des controls au niveaus des controls mais au niveaus des tables. par exmpele un test de validation de suppression il faut le mettre dans l'évenement OnBeforeDelete de tables et non sur l'evenement onClick du bouton
    cela a l'avantage de centraliser la gestion des évènements sur le jeu de données. et de plus on peut facilement passer outre de ces gestionnaires avec du code comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //sauvegarde
    OldBeforeDelete := TDataSet.OnBeforeDelete;
    //désactivation
    TDataSet.OnBeforeDelete := nil;
    ...
    //traitement
    ...
    //restauration
    TDataSet.OnBeforeDelete := OldBeforeDelete;

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 35
    Points
    35
    Par défaut Suite
    Salut Ttm,
    evarisnea a dit:
    la solution semble se trouver du coté de TxxField et de son évènement OnValidate.
    Quand on change une valeur dans une cellule de Dbgrid, l'evènement 'Ovalidate' de TxxField n'est jamais déclaché!!!! même aprés 'post' de la table reliée à Dbgrid.
    je veux un evènement qui se déclanche aprés la saisie d'une valeur dans une cellule et la façon de remetre le curseur à la cellule concernée s'il y a erreur de saisie. merci d'avance.

  8. #8
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par jenteldz47
    Quand on change une valeur dans une cellule de Dbgrid, l'evènement 'Ovalidate' de TxxField n'est jamais déclaché!!!! même aprés 'post' de la table reliée à Dbgrid.
    je veux un evènement qui se déclanche aprés la saisie d'une valeur dans une cellule et la façon de remetre le curseur à la cellule concernée s'il y a erreur de saisie. merci d'avance.
    regarde la source que j'ai jointe à mon post.
    voir l'aide delphi pour plus d'informations

    PS:il faut utiliser la balise quote (le carré jaune sur la barre d'outils à droite) pour citer un membre
    Fichiers attachés Fichiers attachés

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 35
    Points
    35
    Par défaut
    Salut ttm,
    Merci Infiniment Evarisnea pour votre efficace méthode sa marche comme sur des roulettes.
    la dérnière fois j'ai changé la valeur d'une autre colonne que celle visée, pour cela l'evenement n'est pas généré.Mérci une autre fois.

  10. #10
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par jenteldz47
    Salut ttm,
    Merci Infiniment Evarisnea
    de rien

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/11/2009, 15h58
  2. Contrôle de saisie sur un int
    Par Spont dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 12/11/2007, 15h23
  3. Contrôle de saisie sur une perte de focus d'une JTextfield
    Par comeochris dans le forum Composants
    Réponses: 3
    Dernier message: 03/04/2006, 15h21
  4. contrôle de saisie sur un espace
    Par oceane751 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/01/2006, 12h04

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