Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : imposé taille a edit [ Divers / Débutant(e) ] (promenneur77)

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
@f0xi :

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

cantador


1 2

Cette discussion est classé 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

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.