J'ai trouver une solution...
Il faut créer une methode dans la classe en question
style:
1 2
| public: // Déclarations de l'utilisateur
void __fastcall GestionErreur(error); |
puis faire un
enum Erreur {ERROR_Amplitude, ERROR_Duree, ERROR_Ampli_Duree};
Dans ma méthode je met
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| void __fastcall TMainForm::GestionErreur(error)
{
switch(error)
{
case ERROR_Amplitude: ShowMessage ("Amplitude\n");
break;
case ERROR_Duree:ShowMessage ("Durée\n");
break;
case ERROR_Ampli_Duree: ShowMessage ("Amplitude et Durée\n");
break;
default: ShowMessage ("Erreur inconnue.");
break;
}
} |
et enfin dans mon bouton je fais:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| void __fastcall TMainForm::btnValiderClick(TObject *Sender)
{
double amplitude, duree, total;
amplitude = edtAmplitude->Text.ToDouble();
duree = edtDuree->Text.ToDouble();
if ((amplitude < 0 || amplitude > 12) && (duree < 1 || duree > 1000))
GestionErreur(ERROR_Ampli_Duree);
if (duree < 1 || duree > 1000)
GestionErreur(ERROR_Duree);
else if ((amplitude < 0) || (amplitude > 12))
GestionErreur(ERROR_Amplitude); |
il reste néanmoins un problème... la il n'y a que 2 boites Edit donc 3 possibilités. Mais s'il y a 4 boites Edit il y a 24 solutions je crois!!! bref facile, d'oublier un cas... Quelqu'un à une idée??? pour simplifier... faire apparaitre toutes les erreurs dans la même fenêtre et en même temps?
Par exemple pour le cas de 2 boites Edit faire une instruction pour ERROR_Duree et une pour ERROR_Amplitude. La troisième c'est à dire ERROR_Ampli_Duree... doit apparaitre sans mettre le cas :
1 2
| if ((amplitude < 0 || amplitude > 12) && (duree < 1 || duree > 1000))
GestionErreur(ERROR_Ampli_Duree); |
Partager