comment empecher l'ecritue dans un edit lorsque celui ci contient deja une chaine de caracter.
merci
comment empecher l'ecritue dans un edit lorsque celui ci contient deja une chaine de caracter.
merci
Bonjour,
Sur l'événement Onchange de l'edit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Edit1Change(Sender: TObject); begin edit1.readonly:=edit1.text<>'' ; end;
si je comprend bien ce code, dès la frappe du premier caractère, la zone d'édition passe en mode lecture seule, ce qui empêche d'ajouter quoi que ce soit!Envoyé par Graffito
mais est ce bien ce que demande baddom ?
car alors on ne pourra jamais saisir plus d'un caractère dans la zone d'édition, or à ce que je sache une chaine de caractères en comporte plusieurs.Envoyé par baddom
Bonjour,
Je n'ai fait que répondre formellement à la question.
Sinon, Evarisnea a raison.
Bonjour,
Le titre de votre message doit être le plus explicite possible.
Je l'ai changé de
edit
à
[TEdit]Empêcher l'écriture lorsqu'une chaîne est déjà saisie
Merci de lire ce sujet
http://www.developpez.net/forums/viewtopic.php?t=172285
Pour revenir à la question, je trouve la question un peu ... ambigüe ! Le contenu du TEdit proviendra d'où ? On ne peut écrire qu'une seule fois ? Parce qu'effectivement une fois que tu auras saisie quelque chose, ce sera impossible de saisir autre chose par la suite.
Faudrait décrire un peu plus le problème, je pense.
en fait j'ai un edit ou je saisie une info et x edis ou je l'ecris.
le but du jeu est que l'ecriture se fasse seulement dans un edit libre et m'avertisse que l'ecriture n'est plus possible si tous les edit sont remplis.
désolé si je ne suis pas assez clair mais je ne suis pas un crack.Merci en tout cas a ceux qui se donne la peine de me répondre.
Utilises le onexit de l'édit, tu vérifies si tout correspond et tu mets en readonly, tu comptes le nombre de readonly et voilà!
Bonjour,
A la creation, définir un tableau d'edit :
Puis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var Tabedit : array of tedit ; ... setLength(TabEdit,x) ; TaBEdit[0]:=Edit1 ;TaBEdit[1]:=Edit2 ; ... for i:=0 to x-1 do TabEdit[i].readonly:=true ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 firstok:=-1 ; for i:=0 to x-1 do if TabEdit[i].text='' then firstok:=i ; if firstok=-1 then showmessage('Plus de place') else TabEdit[i].text:=myReadWriteEdit.text ;
Attention graffito si tu places les edit en readonly direct, on ne pourra jamais rien écrire dedans!
mais plutot:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for i:=0 to x-1 do TabEdit[i].readonly:=true ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for i:=0 to x-1 do TabEdit[i].readonly:=false ;
Le seul edit dans lequel on écrit "myReadWriteEdit" ne fait pas partie du tableau.
Sorry! J'ai relu mieux ce qu'il veut faire, un edit où il entre la donnée et qui les places dans des edits, alors OK!
Tiens une idée, l'utilisateur d'un tel programme risque de foncer dans n'importe quel edit pour y entrer des données et ne pas comprendre qu'il ne peut pas entrer de données, pourquoi ne pas créer un edit en readonly à chaque entrée (ou un label) voire utiliser une liste.
Je placerais tous mes Edits dans un panel MonPanel.
Sur le Enter de tous les edit:
comme l'a fait graffito, mais sur le Enter pour changer tranquillement le Edit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 with TEdit( Sender ) do ReadOnly := Trim( Text ) <> '';
Sur le Exit des tous mes edit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 BPrevenir := True; for i := 0 to MonPanel.ControlCount - 1 do if MonPanel.Controls[ i ] is TEdit then if not TEdit( MonPanel.Controls[ i ] ).ReadOnly then begin BPrevenir := False; Break; end;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager