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

 Delphi Discussion :

TEdit et MaxLength


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement de composants

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut TEdit et MaxLength
    Bonjour,

    Je voudrais savoir s'il est possible d’être averti lorsque un utilisateur veut entrer un texte plus long que MaxLength.
    En fait, j'ai surtout un problème lorsque l'utilisateur fait un "coller" dans le tedit, en effet le texte est tronqué (si il est trop long) mais je n'ai pas moyen de savoir que l'utilisateur a voulu dépasser la longueur max. Donc l'utilisateur ne peut pas être averti qu'il a voulu dépasser une limite.
    Lorsque l'utilisateur entre son message en tapant caractère après caractère j'arrive à gérer assez facilement avec les événrments keyup et keydown.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 681
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 681
    Points : 13 089
    Points
    13 089
    Par défaut
    A part créer un nouveau composant :
    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
    type
      TEditEx = class(TEdit)
        procedure WMPaste(var Message: TMessage); message WM_PASTE;
      end;
     
    procedure TEditEx.WMPaste(var Message: TMessage);
    begin
      if MaxLength > 0 then
        if Length(Text) -Length(SelText) +Length(ClipBoard.AsText) > MaxLength then
        begin
          MessageDlg('Texte trop long', mtWarning, [mbOk], 0);
          Exit;
        end;
     
      SelText := Clipboard.AsText;
    end;
    Dommage qu'on ne puisse pas le faire par ClassHelper

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement de composants

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse et pour ton exemple !

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    tu peut aussi contrôler ça sans création d'un nouveau composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (SSCTRL IN Shift)and(key=86)and(Tedit(sender).MaxLength<length(clipboard.AsText)) then
            showmessage('message trop long!');
     
     
    end;
    A CONDITION QUE LE COLLER SE FAIT PAR CTRL+V

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

Discussions similaires

  1. TEdit - Popup par défaut
    Par dugenou dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2004, 11h18
  2. Curseur d'un TEdit
    Par Guile dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/05/2003, 18h33
  3. TEdit (encore)
    Par dj.motte dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/12/2002, 19h02
  4. [TEdit][TListBox]Recherche instantanée
    Par SamDaKap dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/11/2002, 21h31
  5. TEdit : selection du texte et autre fonction
    Par Odulo dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/08/2002, 14h27

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