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 :

espace comme ThousandSeparator de TDBEdit


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Par défaut espace comme ThousandSeparator de TDBEdit
    salut,

    pour avoir des espaces comme séparateurs de milliers dans mes TDBEdit de nombres réels, sur le OnAfterOpen de mes ADOQuery je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TFloatField(MonDBEdit.Field).DisplayFormat := ',#0.00",
    et au lancement de l'appli j'initialise ThousandSeparator à ' '

    Problème : les TDBEdit s'affichent bien, mais à la saisie, on ne peut pas laisser d'espace ! Si dans le TDBEdit il y avait "20 000.53" et qu'on remplace le 53 par 54, lorsqu'on sort du TDBEdit, message d'erreur valeur incorrecte. Si on enlève l'espace, pas de problème.
    Comment éviter que ça plante et qu'il puisse y avoir des espaces ?
    J'aurais voulu faire une petite fonction qui enlève les espaces en interne (mais pas à l'affichage), mais je n'arrive pas à avoir la main au bon moment. Ca plante avant le OnDBEditExit, et avant tous les événements possibles du ADOQuery et du DataSource !
    Quelqu'un sait comment faire ? J'ai cherché en vain, pourtant je dois pas être le premier à chercher à faire ça ?

    Merci beaucoup !

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Salut!

    As-tu essayé avec l'évènement BeforePost ?

    Peut être un post qui pourra t'aider :
    http://www.developpez.net/forums/viewtopic.php?t=186354

    A+

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Par défaut
    salut

    merci pour ta réponse, mais malheureusement l'événement OnBeforePost se produit trop tard ! C'est en sortie de focus du TDBEdit que ça plante, avant même l'appel au OnExit du TDBEdit...
    J'ai trouvé un début de piste, qui consisterait peut-être à dériver TDBEdit pour changer sa méthode DataChanged, en y changeant le DataText pour enlever les espaces.
    http://homepages.borland.com/jedi/issuetracker/view.php?id=1850
    en fait ça s'applique à un TJvDBCalcEdit, mais pour un TDBEdit c'est peut-être pareil.
    Mais si quelqu'un a une solution moins bourrine que de dériver la classe, je suis preneur !

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Par défaut
    à moins que je puisse utiliser un MaskEdit plutôt que (ou en plus de) définir un DisplayFormat. Pour que les espaces soient affichés tous les 3 digits, mais soient ignorés en interne. C'est possible tu crois ?

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Par défaut
    Salut,

    tu as un composant RxDBCalcEdit dans la RxLib qui devrait pouvoir t'aider pour te sortir d'embarras...

    @+

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Par défaut
    Génial, merci beaucoup !
    En revanche, je ne suis pas sûr d'avoir besoin du bouton avec la calculette, je vais voir. Mais il suffit de mettre ButtonWidth à 0 pour ne plus l'avoir.

    Merci encore
    Thibaud

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

Discussions similaires

  1. Insérer un espace comme valeur d'un champ
    Par enzostar dans le forum Requêtes
    Réponses: 18
    Dernier message: 30/03/2015, 22h01
  2. Espace comme séparateur de milliers
    Par shayw dans le forum VBA Word
    Réponses: 2
    Dernier message: 29/01/2014, 22h17
  3. Réponses: 9
    Dernier message: 27/12/2008, 17h09
  4. Réponses: 6
    Dernier message: 14/02/2007, 12h51
  5. Pb d'espace avec un TDBEdit ...
    Par Djedjeridoo dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/02/2006, 16h43

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