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

Composants VCL Delphi Discussion :

Comment savoir si le texte saisi dans un TEdit est apparent à l'écran


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 954
    Par défaut Comment savoir si le texte saisi dans un TEdit est apparent à l'écran
    Bonjour à tous,

    Ma question est simple : comment savoir si le texte saisi dans un TEdit est apparent à l’écran ? De cette manière je peux gérer la taille de la fonte et la taille du TEdit.

  2. #2
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 522
    Par défaut
    Bonjour,
    est ce que tu peux préciser ta question ? quand on tape du texte dans un TEdit "standard", il est visible à l'écran sauf si PasswordChar n'a pas la valeur caractère nulle (#0)

    A+
    Charly

  3. #3
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 522
    Par défaut
    Tu veux surement dire que la largeur de ton TEdit doit s'adapter à la largeur de son texte ?

    Regarde ici et ici

    A+
    Charly

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 86
    Par défaut
    Je pense que la question est de savoir si le texte saisi dépasse ou non en fonction de la largeur du TEdit.

    On doit pouvoir faire ça en utilisant un canvas :

    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
     
      myCanvas : TControlCanvas;
    begin
     
      myCanvas := TControlCanvas.Create;
      try
        myCanvas.Control := Edit1;
     
        myCanvas.Font.Assign(Edit1.Font);  // bien penser à utiliser la font du TEdit
     
        if myCanvas.TextWidth(Edit1.Text) > Edit1.Width then
          ShowMessage('Trop long');
     
     
      finally
        FreeAndNil(myCanvas);
      end;

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 522
    Par défaut
    Et comme le fait Hermite, pour bloquer la saisie en longueur tu peux mettre ce code dans le OnKeyPress :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
    Var  myCanvas : TControlCanvas;
    begin
      if (Key = Chr(vk_Back)) then  Exit  ;    // pour pouvoir faire marche arrière !
      myCanvas := TControlCanvas.Create;
      try
        myCanvas.Control := Edit2;
        myCanvas.Font.Assign(Edit2.Font);
        if myCanvas.TextWidth(Edit2.Text) > (Edit2.ClientWidth - myCanvas.TextWidth('a')) then  // pour garder un peu de marge 
          Key := #0 ;
      finally
        FreeAndNil(myCanvas);
      end;
    end;
    Sinon au lieu de Key := 0 tu peux agrandir le TEdit

    Il existe aussi la propriété MaxLength que l'on utilise souvent pour limiter la saisie en nombre de caractères ...

    A+
    Charly

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 954
    Par défaut
    Bonjour,

    Je vous remercie beaucoup pour vos réponses. Cependant j'ai oublié de préciser que je voudrais contrôler l'affichage dans un "Tdbedit", si les données ne sont pas complètement affichées je réduit la font mais le problème que Tdbedit ne contient pas les evenements "Onkeypress, onkeychange".

  7. #7
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 522
    Par défaut
    Bonjour,

    sous D7, mon TDBEdit comporte un OnKeyPress et un OnChange ??

    A+
    Charly

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/09/2015, 17h26
  2. comment interpreter les balises html saisies dans une zone de texte
    Par programmatrice dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/04/2012, 15h04
  3. Vérifier le type d'un texte saisi dans un TEdit
    Par logiciel_const dans le forum Composants VCL
    Réponses: 3
    Dernier message: 26/04/2009, 15h13
  4. Réponses: 3
    Dernier message: 31/07/2006, 16h42
  5. [D7] Longueur du texte saisi dans un Tedit
    Par Thierry Laborde dans le forum Delphi
    Réponses: 6
    Dernier message: 11/07/2006, 19h08

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