Bonjour,
Voila j'ai une appli avec 95 Edit, vu que dans les propriété pas possible de fixer une longueur maxi, j'ai fait une procedure avec un case, tous les TEdit ont le Tag Correspondant à leur Taille Shouhaité, j'ai bidouiller pour ne pas taper WattMille lignes.
Il y aurait pas un truc plus pro???
Ces EDit sont déstiné à alimenter une Base de Donnée Interbase, Vous me direz pourquoi ne pas utiliser un TDEdit qui lui associé à un Champ de la base bloquera, mais alors ou serait l'intéret de la recherche?
* Nota pour que ce soit un minimun lisible j'ai renommer les Compo
je l'appelle ainsi :
Dans le KeyPress
VERIF_EDIT_LONGUEUR(Tedit(Sender).Tag, Tedit(Sender).Name);
Procedure TForm1.VERIF_EDIT_LONGUEUR(
LONGUEUR: Integer;
NOM: String);
Var nonEDIT: Tedit;
Msg: String;
Begin
With Form1 Do
Begin
// le Tag du EDIT doit Correspondre à la longueur Maxi
// Recupération du nom de l'Edit via variable NOM pour comparaison et Formatage
nonEDIT := Tedit(Findcomponent(
NOM));
// Message pour le Showmessage
Msg := 'Saisie Trop Longue';
//------------------------------------------------------------------------------
Case
LONGUEUR Of
//------------------------------------------------------------------------------
// Vérification si dépassement Edit > Case = Trop Long
2: If Length(nonEDIT.txt) > 2 Then
Begin
//Avertissement si dépasse le Tag
ShowMessage(Msg);
// Reformate Edit à la Bonne Taille
nonEDIT.text := Copy(nonEDIT, 0, 2);
//Curseur Fin de chaine
nonEDIT.Selstart := 2;
End;
//------------------------------------------------------------------------------
5: If Length(nonEDIT.txt) > 5 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 5); nonEDIT.Selstart := 5;
End;
//------------------------------------------------------------------------------
8: If Length(nonEDIT.txt) > 8 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 8); nonEDIT.Selstart := 8;
End;
//------------------------------------------------------------------------------
10: If Length(nonEDIT.txt) > 10 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 10); nonEDIT.Selstart := 10;
End;
//------------------------------------------------------------------------------
11: If Length(nonEDIT.txt) > 11 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 11); nonEDIT.Selstart := 11;
End;
//------------------------------------------------------------------------------
15: If Length(nonEDIT.txt) > 15 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 15); nonEDIT.Selstart := 15;
End;
//------------------------------------------------------------------------------
30: If Length(nonEDIT.txt) > 30 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 30); nonEDIT.Selstart := 30;
End;
//------------------------------------------------------------------------------
40: If Length(nonEDIT.txt) > 40 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 40); nonEDIT.Selstart := 40;
End;
//------------------------------------------------------------------------------
50: If Length(nonEDIT.txt) > 50 Then
Begin
ShowMessage(Msg); nonEDIT.text := Copy(nonEDIT, 0, 50); nonEDIT.Selstart := 50;
End;
//------------------------------------------------------------------------------
End; // Fin CASE
//------------------------------------------------------------------------------
End; // Fin With
//------------------------------------------------------------------------------
End;
//-----------------------------------------------
Bonne Prog à Tous Or Bonne Prog à Toutes
//-----------------------------------------------