Comment inclure une procédure dans une autre ?

Signaler
Messages postés
29
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
24 octobre 2003
-
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007
-
Comment inclure une procédure dans une autre ?

voici la partie concréte :

comment inclure ça :

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If key = #13 Then
Button4.Enabled:=True;
end;

dans ça à l'endroit de l'étoile (*):

Procedure TForm1.Edit1Change(Sender : TObject);
Var
Chn : String;

Begin
Chn:=Edit1.Text;
If Length(Chn) = 11 Then*
Button4.Enabled:=True;
Else Button4.Enabled:=False;
End;

je sais pas comment faire , vous pouvez m'aider SVP !!!!

Merci d'avance de votre aide , j'en ai besoin ! ;)

A+

6 réponses

Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007

si je comprends bien ce que tu veux faire, quand l'utilisateur valide le contenu du TEdit (appuie sur Enter) et que le TEdit contient une chaine de 11 caractères, le bouton4 est Enabled.

si c'est ça utilise plutot l'évènement onExit du TEdit et dedans tu peux mettre :
bouton4.enabled :lenght(edit1.text) 11;
Messages postés
29
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
24 octobre 2003

Oui , c'est exactement ça , mais ta méthode ne marche pas , lorsque je fais "enter" , il ne se passe rien !

A+
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007

Alors dans ce cas il vaut mieux utiliser un TAction.

Associe un TAction à ton TButton.

dans l'évenement onExecute de l'action met le code que tu avais dans Button4.Click.
dans l'évènement onUpdate de l'action :
MonAction.enabled :lenght(edit1.text) 11;

Avec ça le click du bouton execute l'action seulement si elle est enabled (sinon le bouton est grisé)

tu peux aussi activer la propriété Default du TButton comme ça la touche Entrée aura le même effet qu'un clic sur le TButton

>:) PhoenyX >:)
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Inutile de sortir la grosse artillerie des TActionList pour un problème aussi léger.
Procedure TForm1.Edit1Change(Sender : TObject);
Begin  Button4.Enabled :Length(Edit1.Text) 11;
End;

May Delphi be with you
Messages postés
194
Date d'inscription
dimanche 2 mars 2003
Statut
Membre
Dernière intervention
10 octobre 2006
2
ou alors si je dis pas de betise...mettre MonAction.enabled :lenght(edit1.text) 11; dans le OnKeyUp de l'Edit

Tout problème a sa solution... Mais en général, c'est jamais la bonne...
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007

Vrai sauf si le contenu du TEdit est modifier par code.
L'avantage avec le TAction est que ça marche tout le temps.

>:) PhoenyX >:)