begin process at 2012 02 11 11:39:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

imposé taille a edit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

imposé taille a edit

dimanche 4 mai 2008 à 11:24:39 | imposé taille a edit

promenneur77

bonjour,

je voudrait imposé 4 caractere dans un edit, j'ai reussi a bloquer a 4 caractere mais pas reussi a en obliger 4.
deplus je n'arrive pas non plus a impossé que des chiffres.
si moin de 4 caractere dans edit je souhaite que lorsque l'on clic sur le bouton ca ne face rien et que cela me dise ex: pas 4 chifre

dimanche 4 mai 2008 à 11:56:23 | Re : imposé taille a edit

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

utilise un MaskEdit à la place ... tout y est prévu

parce que avec un TEdit c'est possible mais il faudra également gerer le copier/coller
voir ce code

 
@+
Cirec

dimanche 4 mai 2008 à 11:57:25 | Re : imposé taille a edit

ni69

Membre Club
Tu peux utiliser un :
TMaskEdit
en modifiant sa propriété "EditMask"

@+
Nico { [ Lien ] }
dimanche 4 mai 2008 à 12:00:46 | Re : imposé taille a edit

ni69

Membre Club
Quelques infos en passant sur les valeurs possibles pour EditMask:

[ Lien ]

@+
Nico { [ Lien ] }
dimanche 4 mai 2008 à 12:12:57 | Re : imposé taille a edit

Rematrix

TEditmask pas trés réussie a mon avis, tros de bug, faire ces propres contrôles c'est mieux.

Matrix
dimanche 4 mai 2008 à 12:16:58 | Re : imposé taille a edit

cirec

Membre Club Administrateur CodeS-SourceS
quels genre de bugs ?

j'ai jamais eu de problèmes avec!!!

 
@+
Cirec

dimanche 4 mai 2008 à 12:28:32 | Re : imposé taille a edit

promenneur77

je vous remerci mais j'ai reussi

avec :

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if not (Key in ['0'..'9',Chr(VK_DELETE),Chr(VK_BACK)]) then
    Key:=#0;
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if Length(Edit1.Text)<Edit1.MaxLength then
  begin
    ShowMessage('Il faut 4 chiffres');

  end;

end;

dimanche 4 mai 2008 à 12:32:40 | Re : imposé taille a edit

cirec

Membre Club Administrateur CodeS-SourceS
ouai et si l'utilisateur fait un coller ??????
pourquoi vous posez des questions si c'est pour ne pas écouter les réponses
 
@+
Cirec

dimanche 4 mai 2008 à 12:59:36 | Re : imposé taille a edit

f0xi

Membre Club Administrateur CodeS-SourceS

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  inherited; // ?????! pas d'inherited dans un gestionnaire d'evenement!
  if not (Key in ['0'..'9',Chr(VK_DELETE),Chr(VK_BACK)]) then
    Key:=#0;
end;


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',#8]) then
    Key:=#0;
end;



mais le mieux est de faire :

Unit Unit1;

interface

uses ...;

type
  TEdit = class(StdCtrls.TEdit)
  private
    fTextAlign   : TAlignment;
    fOnlyNumbers : boolean;
    procedure SetOnlyNumbers(val : boolean);
    procedure SetTextAlign(val : TAlignment);
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property OnlyNumbers  : boolean    read fOnlyNumbers write SetOnlyNumbers;
    property TextAlignment: TAlignment read fTextAlign   write SetTextAlign;
  end;

  TForm1 = class(TForm)
  ....
  end;

var
  Form1 : TForm1;

implementation

constructor TEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  fOnlyNumbers := false;
  fTextAlign   := taLeftJustify;
end;

procedure TEdit.CreateParams(var Params: TCreateParams);
const
  Alignments : array[TAlignment] of Word = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or Alignments[TextAlignment];
  if fOnlyNumbers then
     Params.Style := Params.Style or ES_NUMBER;
end;

procedure TEdit.SetOnlyNumbers(val: boolean);
begin
  if fOnlyNumbers <> val then begin
     fOnlyNumbers := val;
     RecreateWnd;
  end;
end;

procedure TEdit.SetTextAlign(val : TAlignment);
begin
  if fTextAlign <> val then
  begin
     fTextAlign := val;
     RecreateWnd;
  end;
end;



et dans le OnCreate de la fiche :

EditX.OnlyNumber := true;
EditX.TextAlignement := taRight;
EditX.MaxLength := 4;

puis dans le OnChange de l'edit :

procedure TForm1.EditXOnChange(Sender: TObject);
var L : integer;
const
  EdtCol : array[boolean] of tcolor = (clRed, clBlue);
begin
  L := Length(EditX.Text);
  EditX.Font.Color := EdtCol[L = 4];

  // ou encore :
  {
   L := IntToStrDef(EditX.Text, 0);
   EditX.Font.Color := EdtCol[(L >= 1000) and (L < 10000)];
  }
end;





dimanche 4 mai 2008 à 14:32:48 | Re : imposé taille a edit

cantador

Membre Club Administrateur CodeS-SourceS
@f0xi :

Intéressant mais en quoi est-ce mieux qu'un MaskEdit ?

cantador

1 2

Cette discussion est classée dans : taille, caractere, edit, reussi, imposé


Répondre à ce message

Sujets en rapport avec ce message

2 petits problemes. [ par Youyou0214 ] salut tout le monde,j'ai 2 probleme:1comment savoir (quand j'ai 2 edit) si dans un edit il y a un caractere qui est present dans l'autre edit. ex: dan Suite d'edit pour un query [ par nou366 ] Bonjouur,J'ain un problème avec une application , je m'explique: Je voudrais passer une commande avce une table article de chaussuresL'utilisateur cho telecharger un caractere dans edit [ par nethacker ] salut,j'aimerais bien savoir comment telecharger un ou plutot des caracteres dans des edit ! sachant que je veux avoir le meme fichier texte sur le se Impression caractere de taille en pts. [ par CoSmiCk ] Bonsoir, J'ai besoin d'imprimer du texte qui sera lu par un OCR et pour se faire le texte doit avoir une taille de caractere bien precise soit en pts trouver et modifier le caractere ds 1 Edit ou Label [ par 810mcu ] Bon jour à tous,Je cherche sans succès sur le net et je ne trouve pas ce qui pourrait m'aider, et c'est pour ça que je recours a qui peut m'aider.< comment vider tte les ligne d un DbGrid [ par abaddi ] bonjour j ai un DbGrid qui est rempli dés que un Champ Edit est changerle probleme que j ai c est que si le champs Edit est vide le DbGrid n'est pas v Maximize Form Double Ecran [ par khulli2 ] Bonjour a tous,Je suis a la recherche d'une solution pour mon application. Lorsque mon application tourne, je suis en bureau etendu, ma fenetre princi problème avec un Edit.Text [HELP] [ par Bouboukick ] Bonjour voici mon code:                retour:= copy(Ligne, pos('=',Ligne) + 1, 3);                Edit1.Text:=retour;le problème c'est que les valeur remplir des edit depuis un stringgrid [ par mohamedredha ] boujour tous le monde ou a ceux qui sont entrain de me lire  je vient de débuter dans ce domaine et mes premiers pas sont baser sur les forums, voila chiffre en lettre [ par vrachid ] bj a tousy a til un moyen de convertir un chiffre en sa position numérique dans l'alphabet?par exemple si je tape 1 dans un edit j'aurai un A dans l'a


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales