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

Langage Delphi Discussion :

Limiter Taille Textbox


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 30
    Points : 13
    Points
    13
    Par défaut Limiter Taille Textbox
    Bonjour à tous,

    Voici mon problème je souhaiterai limiter le texte dans une TextBox mais pas par la taille (c'est à dire sans MaxLength)mais par la position du curseur dans la textbox.Je m'explique lorsque l'on limite le nombre de caratère dans une TextBox quand je suis en minuscule je ne profite pas pleinement de la TextBox

    Exemple :

    ABCDEFGH
    abcdefgh

    Même nombre caratère alors que en minuscule j'aurai souhaité ajouter un caratère.

    J'espère avoir était claire dans mes explications

    Pour Info : j'utilise Delphi 6 Edition Perso

    Merci d'avance

  2. #2
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Voila une solution qui fonctionne, mais je sais pas si c'est la plus simple. En fait, tu crées un bitmap, pour bénéficier de la propriété TextWidth qui te renvoie la dimension du texte en pixel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var ABmp : TBitmap;
    begin
      if Key<>#8 then
      begin
        ABmp:=TBitmap.Create;
        ABmp.Canvas.Font.Assign(Edit1.Font);
        if ABmp.Canvas.TextWidth(Edit1.Text)>=(Edit1.ClientWidth-5) then Key:=#0;
        ABmp.Free;
      end;
    end;
    Bonne chance

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 30
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Salut

    Voila une solution qui fonctionne, mais je sais pas si c'est la plus simple. En fait, tu crées un bitmap, pour bénéficier de la propriété TextWidth qui te renvoie la dimension du texte en pixel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var ABmp : TBitmap;
    begin
      if Key<>#8 then
      begin
        ABmp:=TBitmap.Create;
        ABmp.Canvas.Font.Assign(Edit1.Font);
        if ABmp.Canvas.TextWidth(Edit1.Text)>=(Edit1.ClientWidth-5) then Key:=#0;
        ABmp.Free;
      end;
    end;
    Bonne chance

    Merci beaucoup ça marche nickel

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

Discussions similaires

  1. Limiter taille d'une ligne dans un textbox multiligne
    Par luc2verga dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/11/2009, 07h00
  2. Réponses: 2
    Dernier message: 05/12/2005, 12h16
  3. [HTML] Limiter taille ligne <textarea>
    Par hedgehog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/06/2005, 11h45
  4. Réponses: 2
    Dernier message: 21/10/2004, 12h29
  5. Limiter taille fichier joint à un mail
    Par fdthierry dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 27/08/2004, 12h12

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