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

C++Builder Discussion :

memo limiter 1 seule lignes


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut memo limiter 1 seule lignes
    j'utilise un memo pour la saisie car je peux centrer le texte et non sur un TEdit

    Y a -t-il moyen de le bloquer a une seule ligne car quand j'appuye sur ENTER il passe la ligne... c'est un peu embetant car c'est une simple saisie.


    Merci


    2eme question sur mon Memo :

    J'utilise la fonction de la FAQ.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ((Key < '0' || Key >'9') && Key != 8 && (Key != DecimalSeparator ||
    						((TEdit *)Sender)->Text.Pos(DecimalSeparator)!=0))
    															Key = NULL;
    car dans ce memo je dois taper un prix mais je voudrais limiter ce prix a 2 chiffres apres la virgule. Coment puis je faire cela ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    Je sais pas pourquoi tu utilise memo pour un simple nombre réel.
    Tu utilise le controle Edit et tu met Center dans la propriété Align.

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Citation Envoyé par Socrat Voir le message
    Je sais pas pourquoi tu utilise memo pour un simple nombre réel.
    Tu utilise le controle Edit et tu met Center dans la propriété Align.
    Le TEdit ne permet pas d'aligner le texte! Donc l'idée du Mémo est certes la solution la plus simple ...

    Pour répondre au question de bullrot :

    Y a -t-il moyen de le bloquer a une seule ligne car quand j'appuye sur ENTER il passe la ligne... c'est un peu embetant car c'est une simple saisie.
    Dans les propriétés du Memo, mettre la propriété WantReturns à false.

    Ensuite, pour la saisie de nombre, voici ce que je propose :

    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
    void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
    {
      // Si on appuie sur le '.' du pavé numérique, on le remplace par le DecimalSeparator
      if (Key == '.')
      Key = DecimalSeparator;
     
      if ((Key < '0' || Key >'9') && Key != 8 && (Key != DecimalSeparator ||
     						((TMemo *)Sender)->Text.Pos(DecimalSeparator)!=0))
      {
        Key=0;
      }
      else
      {
        if ( Memo1->Text.Pos(DecimalSeparator) && Memo1->Text.Length()-Memo1->Text.Pos(DecimalSeparator)-1>2 && Key!= VK_BACK)
        {
          Key=0;
        }
      }
    }
    Voilà

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    Oui voila exactement on ne peut pas mettre le texte au centre dans un Tedit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dans les propriétés du Memo, mettre la propriété WantReturns à false.
    Ca marche super je savais pas que cette fonction fesait ca

    Ensuite j'ai essayer ton code : sauf que je l'ai mis dans un Edit :

    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
    void __fastcall TNewProduits::Edit4KeyPress(TObject *Sender, char &Key)
    {
    // Si on appuie sur le '.' du pavé numérique, on le remplace par le DecimalSeparator
      if (Key == '.')
      Key = DecimalSeparator;
     
      if ((Key < '0' || Key >'9') && Key != 8 && (Key != DecimalSeparator ||
    						((TEdit *)Sender)->Text.Pos(DecimalSeparator)!=0))
      {
        Key=0;
      }
      else
      {
        if ( Edit4->Text.Pos(DecimalSeparator) && Edit4->Text.Length()-Edit4->Text.Pos(DecimalSeparator)-1>2 && Key!= VK_BACK)
        {
          Key=0;
        }
      }
    }
    Le point est bien remplacer par une virgule et une seule virgule est acceptée mais il ne limite pas le nombre de chiffre apres la virgule a 2 mais a 4...

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Re,

    Petite erreur de ma part :

    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
    void __fastcall TForm1::Edit4KeyPress(TObject *Sender, char &Key)
    {
      // Si on appuie sur le '.' du pavé numérique, on le remplace par le DecimalSeparator
      if (Key == '.')
      Key = DecimalSeparator;
    
      if ((Key < '0' || Key >'9') && Key != 8 && (Key != DecimalSeparator ||
    						((TEdit *)Sender)->Text.Pos(DecimalSeparator)!=0))
      {
        Key=0;
      }
      else
      {
        if ( Edit4->Text.Pos(DecimalSeparator) && Edit4->Text.Length()-Edit4->Text.Pos(DecimalSeparator)+1>2 && Key!= VK_BACK)
        {
          Key=0;
        }
      }
    }
    Voilou

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    Pas de prob pour l'erreur ca arrive vite

    Franchement c'est super

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

Discussions similaires

  1. Limite d'une ligne
    Par Etienne1 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/09/2007, 18h02
  2. plusieurs enregistrements dans une seul ligne
    Par Celelibi dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/01/2005, 15h55
  3. wxWidgets : couleur de texte sur une seule ligne
    Par Oatly dans le forum wxWidgets
    Réponses: 8
    Dernier message: 05/12/2004, 19h24
  4. [JTable]Selectionner une seule ligne d'une jTable ?
    Par Maximus32 dans le forum Composants
    Réponses: 2
    Dernier message: 22/10/2004, 02h06
  5. [Memo] Hauteur d'une ligne
    Par Linkin dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/10/2004, 14h18

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