Recuperer des valeurs dans un tedit [Résolu]

Messages postés
31
Date d'inscription
jeudi 16 décembre 2004
Dernière intervention
4 mai 2007
- 24 avril 2006 à 15:20 - Dernière réponse :
Messages postés
1105
Date d'inscription
dimanche 1 août 2004
Dernière intervention
17 août 2008
- 25 avril 2006 à 08:39
Bonjour,
Je débute sous delphi, et je doit faire une interface graphique dans laquelle l'utilisateur entrera des valeures que je devrai récuperer dans des variables des qu'il apuira sur un bouton de validation.
pour cela, j'ai créé un tform dans lequel il y a des tedit eu un bitbutton de validation.
quelqu'un pourrait-il me dire comment je peut récupérer les valeurs que l'utilisateur aura préalablement entré dans les tedit pour les mettre dans des variables ? (ou au moin m'indiquer un tutoriel en parlant )
Merci.
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
314
Date d'inscription
dimanche 31 octobre 2004
Dernière intervention
31 décembre 2006
24 avril 2006 à 15:38
3
Merci
salut,
Pour récupérer la valeur d'un tedit dans une variable var il te suffit de faire :
var := edit.text;
Cependant le type de ta variable var sera de type string. Si tu veux que cela soit des entiers ou des valeurs numériques il te faudra faire un transtypage.
Bonne continuation

Merci cs_sim51 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_sim51
Meilleure réponse
24 avril 2006 à 16:17
3
Merci
Salut,

J'ai 5 min alors je te file une autre technique quand tu as plusieurs edit. Edit.text est "un string". Bien je te propose de créer une variable correspondant non pas à un string mais à une "liste de strings ", ok??

Procedure RecupererEditDansVariable (Sender : TObjet);
Var
List : TSTRINGLIST; //
begin
List:=TStringList.Create; // On crée la stringlist
List.Add(Edit1.text); // On ajoute le contenu de l'edit1
List.Add(Edit2.text);
List.Add(Edit3.text);
{ Tu mets içi ce que tu veux faire de ta stringlist}
List.free; // On a plus besoin de List on la libère
end;

J'ai pas delphi sous les yeux mais ca devrait etre bon. Il est préférable d'utiliser try except et finally. Je les ai pas mis pour pas te compliquer.

A+ et bon coding ...

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
31
Date d'inscription
jeudi 16 décembre 2004
Dernière intervention
4 mai 2007
24 avril 2006 à 15:32
0
Merci
une petite precision : je ne suis pas sur non plus qu'il faille utiliser des tedit
Commenter la réponse de sfkuhvdlkufgs
Messages postés
31
Date d'inscription
jeudi 16 décembre 2004
Dernière intervention
4 mai 2007
24 avril 2006 à 18:27
0
Merci
merci tous les deux, éant donné que les valeurs entrées vont me servir pour une fonction mathematique, je vais pltit prendre la premiere solution.
En tout cas c'est sympade m'avoir répondu si vite :-)
Commenter la réponse de sfkuhvdlkufgs
Messages postés
314
Date d'inscription
dimanche 31 octobre 2004
Dernière intervention
31 décembre 2006
24 avril 2006 à 18:34
0
Merci
Re,
Puisque ce sont bien des valeur numérique n'oublie pas de faire le transtypage. D'ou fait plutot ceci :
var := strtofloat(edit.text);
Comme cela var sera une variable de type réelle (ou fait strtoint pour la variable soit de type entier).
Bonne continuation.
Commenter la réponse de cs_sim51
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
24 avril 2006 à 18:47
0
Merci
Salut,
et tu peux aussi si tu désires mettre en forme (afficher) une opération tu peux utiliser la fonction Format :


Label1.Caption := Format('%s * %s := %d', [Edit1.Text, Edit2.Text, StrToIntDef(Edit1.Text, 0) * StrToIntDef(Edit2.Text, 0)]);

Donc si Edit1.Text := 50
Et si Edit2.Text := 50
Label1.Caption Affichera 50 * 50 := 2500



<HR>





n'oubliez pas de cliquer sur Réponse Acceptée
si elle vous convient


<HR>


@+
Cirec
Commenter la réponse de Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
24 avril 2006 à 18:54
0
Merci
Ps : préferez les fonctions StrToType en StrToTypeDef :

Exemple pour StrToFloat :
function StrToFloatDef(const S: string;
const Default: Extended): Extended; overload;

Donc :
var := strtofloat(edit.text);
devient
Var := StrToFloatDef(Edit.Text, 0.0); // voilà donc si Edit.Text n'est ni un entier ni un réel la fonction renvoie 0.0 et ne génère pas d'erreur

<HR>





n'oubliez pas de cliquer sur Réponse Acceptée
si elle vous convient


<HR>


@+
Cirec
Commenter la réponse de Cirec
Messages postés
1105
Date d'inscription
dimanche 1 août 2004
Dernière intervention
17 août 2008
24 avril 2006 à 19:19
0
Merci
En même temps Cirec, si tu veux différencier la valeur 0 d'une saisie incorrecte, tu es mal barré !
Moi je préfère utiliser StrToInt() et mettre un masque de saisie à l'Edit, c'est à dire mettre

if not (Key in ['0'..'9', Chr(VK_RETURN), Chr(VK_DELETE)]) then
Key := #0;

dans l'évenement OnKeyPress des Edits concernés. Ou alors utiliser un TMaskEdit.

@ +
Florent

Si tu ne te plantes pas ......
tu ne pousseras jamais
Commenter la réponse de florenth
24 avril 2006 à 19:31
0
Merci
Oup la j'ai fais une boulette : deux fois rien mais bon

Procedure RecupererEditDansVariable (Sender : TObjet); à remplacer par
Procedure TForm1.RecupererEditDansVariable (Sender : TObjet); (et oui c'est un ptit bouton).

Désolé A+
Commenter la réponse de Utilisateur anonyme
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
25 avril 2006 à 01:04
0
Merci
Oui Florenth,
mais il y a des cas ou une valeur par défaut est utile.
Et le problème de ta méthode est qu'en cas d'un coller (WM_PASTE) tu peux quand même rentrer autre chose que les caractères prévues à la base et donc la soit du refait un contrôle avant (mais niveau code c'est pas terrible) où alors il faudra compter avec une EConvertError. Alors qu'avec l'autre il renvoie la valeur par défaut.


Comme dans la plus part des cas on a des limites dans les valeurs il suffit de déclarer une Constante qui est en dehors de ces limites Ex :
// pour un interval entre 0 et 1024
Const
Out_Of_Limit = 9999;


procedure TForm1.Button1Click(Sender: TObject);
Var Valeur : Integer;
begin
//On transtype avec une valeur par défaut si besoin on affecte Out_Of_Limit
Valeur : = StrToIntDef(Edit1.Text, Out_Of_Limit);
// On vérifie les limites si en dehors on affecte Out_Of_Limit
If (Valeur > 1024) or (Valeur < 0) Then Valeur := Out_Of_Limit;
//Où avec InRange de l'unité Math (Mais il faut ajouter Uses Math;)
If Not InRange(Valeur, 0, 1024) Then Valeur : = Out_Of_Limit;

...
end;


Voilà et il n'y a pas d'erreur ni avec un coller ni autre ce qui n'empêche pas de l'utiliser
simultanément avec un contrôle de la frappe ce qui est plus élégant



<HR>


n'oubliez pas de cliquer sur Réponse Acceptée
si elle vous convient


<HR>

@+
Cirec
Commenter la réponse de Cirec
Messages postés
1105
Date d'inscription
dimanche 1 août 2004
Dernière intervention
17 août 2008
25 avril 2006 à 08:39
0
Merci
Eh eh bien vu Cirec. Je n'avais pasdu tout pensé au cas du copier-coller. Mais bon, avec un MaskEdit, pas de problème normalement (je dis bien normalement car j'ai pas encore testé)

Si tu ne te plantes pas ......
tu ne pousseras jamais
Commenter la réponse de florenth

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.