J'ai trois "edits" (edit1, edit2, and edit3). J'ai écrit ces codes afin d'empêcher que l'"edit2" ne peut recevoir une valeur supérieure à "edit1". Ça marche!
Mais alors je voulais bien l'appliquer sur un bouton de "sauvegarder". Cela veut dire qu'aucune sauvegarde ne peut se faire si "edit2" ou "edit3" portent une valeur supérieure à "edit1".
if strToFloat(edit1.Text) >= strToFloat(edit2.Text) then begin end else qryTest.Append; qryTest.fieldByName('matricule').AssTring:= edit1.Text; qryTest.fieldByName('nom').AssTring:= edit2.Text; qryTest.fieldByName('prenom').AssTring:= edit3.Text; qryTest.Post; else showmessage('Attention: un des champs contient une valeur superieure !'); end;
Ces codes marchent avec sans codes de sauvegarde. Mais quand j'ajoute ces codes de sauvegarde. Ça marchent!
Comme il a été dit :
if strToFloat(edit1.Text) >= strToFloat(edit2.Text) then begin
end else
qryTest.Append;
qryTest.fieldByName('matricule').AssTring:= edit1.Text;
qryTest.fieldByName('nom').AssTring:= edit2.Text;
qryTest.fieldByName('prenom').AssTring:= edit3.Text;
qryTest.Post;
else
showmessage('Attention: un des champs contient une valeur superieure !');
end;
ne peut fonctionner correctemment. Mais ceci : oui (Au moins si certaines conditions sont remplies)
if (strToFloat(edit1.Text) <= strToFloat(edit2.Text)) or
(strToFloat(edit1.Text) <= strToFloat(edit3.Text))
then showmessage('Attention: un des champs contient une valeur superieure !')
else Begin
qryTest.Append;
qryTest.fieldByName('matricule').AssTring:= edit1.Text;
qryTest.fieldByName('nom').AssTring:= edit2.Text;
qryTest.fieldByName('prenom').AssTring:= edit3.Text;
qryTest.Post;
end;
Maintenant je ne savais pas qu'un nom ou un prénom était représenté par un nombre.
Mouais... Mais quand même, comparer un nom et un prénom... ça ne va pas marcher... A moins que le gars ne s'appelle "4588,66 6669787" mais perso, je n'en connais pas beaucoup... Ce code est absurde.
Olala, je m'excuse d'abord pour la reptition du mot "sauvegarde". Mais c'est juste pour pouvoir m'expliquer!!!
Je voulais dire exactement ceci: sans l'ajout de la ligne de codes de "sauvegarde" ... tout marche! Et lorsque j'ajoute la dite ligne de codes de "sauvegarde". La condition de la non "sauvegarde" n'obei pas au cas où une valeur introduite dans "edit2 ou edit3" n'est pas egale à "edit1".
Leader2000 ou Divin1975 ? Faudrait te choisir un pseudo et le garder...
Il manque du code... Ce que tu as posté ne peut pas fonctionner, il y a un else en trop ou il manque le if qui est devant.
@Cantador : Je n'ai pas compris ta réponse... Une contamination ? :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
euh... M. Dubois, si Edit2 contient un "nom", je ne vois pas trop ce que ça va donner... A part une exception EConvertError...
Je me répète, mais ce code ne marche pas tel quel car incomplet. Je veux bien aider (comme la plupart d'entre nous), mais on ne peut pas deviner ce que veut faire l'auteur...
Je suis bien d'accord avec toi Simon, ce code est très bizarre !
Pour la première réponse de Cantador je disais juste qu'effectivement on peut comparer des pseudo nombres (sous forme de texte) mais que cela n'est pas significatif du même nombre converti en integer
Quant au résultat d'une telle comparaison là c'est le pot au noir !
26 nov. 2013 à 10:21
if strToFloat(edit1.Text) >= strToFloat(edit2.Text) then begin
end else
qryTest.Append;
qryTest.fieldByName('matricule').AssTring:= edit1.Text;
qryTest.fieldByName('nom').AssTring:= edit2.Text;
qryTest.fieldByName('prenom').AssTring:= edit3.Text;
qryTest.Post;
else
showmessage('Attention: un des champs contient une valeur superieure !');
end;
ne peut fonctionner correctemment. Mais ceci : oui (Au moins si certaines conditions sont remplies)
if (strToFloat(edit1.Text) <= strToFloat(edit2.Text)) or
(strToFloat(edit1.Text) <= strToFloat(edit3.Text))
then showmessage('Attention: un des champs contient une valeur superieure !')
else Begin
qryTest.Append;
qryTest.fieldByName('matricule').AssTring:= edit1.Text;
qryTest.fieldByName('nom').AssTring:= edit2.Text;
qryTest.fieldByName('prenom').AssTring:= edit3.Text;
qryTest.Post;
end;
Maintenant je ne savais pas qu'un nom ou un prénom était représenté par un nombre.
26 nov. 2013 à 10:45