Erreur interne : C1091 [Résolu]

JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention - 16 juin 2012 à 20:48 - Dernière réponse : JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention
- 18 juin 2012 à 10:36
Salut à tous !
Voilà, je bosse sur un projet en delphi en ce moment, or je viens de tomber sur une erreur que je n'arrive pas à résoudre.
Voici mon code :
procedure TFPoisson.btnCalculClick(Sender: TObject);
begin
  val(edNombre.Text, nombre, code1);
  val(edProbabiliteessai.Text, probabiliteessai, code2);
  val(edPrecision.Text, precision, codeP);

  if ((code1<>0) or (edNombre.Text='')) then
  begin
  ShowMessage('Veuillez rentrer un nombre d''essai.');
  edNombre.Text:='';
  edNombre.SetFocus;
  end;
  if ((code2<>0) or (edProbabiliteessai.Text='')) then
  begin
  ShowMessage('Veuillez rentrer une valeur pour la probabilité de l''essai.');
  edProbabiliteessai.Text:='';
  edProbabiliteessai.SetFocus;
  end;
  if ((codeP<>0) or (edPrecision.Text='')) then
  begin
  ShowMessage('Veuillez renseigner un chiffre pour la précision.');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;
  if ((precision<0) or (precision>9)) then
  begin
  ShowMessage('La précision doit être comprise entre 0 et 9');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;

if (code1+code2+codeP=0) then
begin
  if nombre<11 then
  for i:=0 to nombre do
    begin
      if i=0 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat1.Caption:=FloatToStr(probabilite);
      end;
      if i=1 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat2.Caption:=FloatToStr(probabilite);
      end;
      if i=2 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat3.Caption:=FloatToStr(probabilite);
      end;
      if i=3 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat4.Caption:=FloatToStr(probabilite);
      end;
      if i=4 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat5.Caption:=FloatToStr(probabilite);
      end;
      if i=5 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat6.Caption:=FloatToStr(probabilite);
      end;
      if i=6 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat7.Caption:=FloatToStr(probabilite);
      end;
      if i=7 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat8.Caption:=FloatToStr(probabilite);
      end;
      if i=8 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat9.Caption:=FloatToStr(probabilite);
      end;
      if i=9 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat10.Caption:=FloatToStr(probabilite);
      end;
      if i=10 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat1.Caption:=FloatToStr(probabilite);
      end;
    end;
    end;
    if nombre>11 then
    begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultatSup.Caption:=FloatToStr(probabilite);
    end;
end
else
  begin
  lbResultat1.Caption:='';
  lbResultat2.Caption:='';
  lbResultat3.Caption:='';
  lbResultat4.Caption:='';
  lbResultat5.Caption:='';
  lbResultat6.Caption:='';
  lbResultat7.Caption:='';
  lbResultat8.Caption:='';
  lbResultat9.Caption:='';
  lbResultat10.Caption:='';
  lbResultatSup.Caption:='';
end;
end;

En le compilant, j'ai l'erreur : Erreur interne : C1091.
L'un de vous a t'il une idée ?
Merci d'avance.
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
korgis 424 Messages postés samedi 17 mai 2003Date d'inscription 4 août 2018 Dernière intervention - 18 juin 2012 à 09:34
3
Merci
La partie de code qui pose problème corrigée :
procedure TFPoisson.btnCalculClick(Sender: TObject);
var
  i: Integer;    // <- Variable locale
begin
  val(edNombre.Text, nombre, code1);
  val(edProbabiliteessai.Text, probabiliteessai, code2);
  val(edPrecision.Text, precision, codeP);

  if ((code1<>0) or (edNombre.Text='')) then
  begin
  ShowMessage('Veuillez rentrer un nombre d''essai.');
  edNombre.Text:='';
  edNombre.SetFocus;
  end;
  if ((code2<>0) or (edProbabiliteessai.Text='')) then
  begin
  ShowMessage('Veuillez rentrer une valeur pour la probabilité de l''essai.');
  edProbabiliteessai.Text:='';
  edProbabiliteessai.SetFocus;
  end;
  if ((codeP<>0) or (edPrecision.Text='')) then
  begin
  ShowMessage('Veuillez renseigner un chiffre pour la précision.');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;
  if ((precision<0) or (precision>9)) then
  begin
  ShowMessage('La précision doit être comprise entre 0 et 9');
  edPrecision.Text:='';
  edPrecision.SetFocus;
  end;

if (code1+code2+codeP=0) then
begin
  if nombre<11 then
    for i:=0 to Round(nombre) do
    begin
      if i=1 then
      begin
        probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
        lbResultat1.Caption:='P(X=1)='+FloatToStr(probabilite);
      end
      else
        lbResultat1.Caption:='';
      //end;   <- supprime tous les "end" qui ne correspondent à aucun "begin" !!!!!
      if i=2 then
      begin
        probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
        lbResultat2.Caption:='P(X=2)='+FloatToStr(probabilite);
      end
      else
      lbResultat2.Caption:='';
      //end;
      if i=3 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat3.Caption:='P(X=3)='+FloatToStr(probabilite);
      end
      else
      lbResultat3.Caption:='';
      //end;
      if i=4 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat4.Caption:='P(X=4)='+FloatToStr(probabilite);
      end
      else
      lbResultat4.Caption:='';
      //end;
      if i=5 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat5.Caption:='P(X=5)='+FloatToStr(probabilite);
      end
      else
      lbResultat5.Caption:='';
      //end;
      if i=6 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat6.Caption:='P(X=6)='+FloatToStr(probabilite);
      end
      else
      lbResultat6.Caption:='';
      //end;
      if i=7 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat7.Caption:='P(X=7)='+FloatToStr(probabilite);
      end
      else
      lbResultat7.Caption:='';
      //end;
      if i=8 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat8.Caption:='P(X=8)='+FloatToStr(probabilite);
      end
      else
      lbResultat8.Caption:='';
      //end;
      if i=9 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat9.Caption:='P(X=9)='+FloatToStr(probabilite);
      end
      else
      lbResultat9.Caption:='';
      //end;
      if i=10 then
      begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultat10.Caption:='P(X=10)='+FloatToStr(probabilite);
      end
      else
      lbResultat10.Caption:='';
      //end;
    end;
    if nombre>11 then
    begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultatSup.Caption:='P(X='+FloatToStr(nombre)+')='+FloatToStr(probabilite);
    end
    else
    lbResultatSup.Caption:='';
    //end;
end


Corrections :
1) ajout d'une variable locale pour la boucle,
2) suppression de tous les "end" qui ne referment aucun "begin".

Conseil : soigne l'indentation qui permet de repérer plus facilement l'erreur n°2

Pas le temps de tester plus, mais ça compile.

Merci korgis 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de korgis
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 17 juin 2012 à 16:17
0
Merci
Salut,
beaucoup de choses me choquent dans ce code ... on pourrait faire mieux en beaucoup plus court mais il me semble que dans ce bout de code un "end;" est de trop !!!

    end;
    end;  // <-----  celui-ci !!!!!
    if nombre>11 then
    begin
      probabilite := (power(probabiliteessai,nombre)*exp(-probabiliteessai))/(nombre);
      lbResultatSup.Caption:=FloatToStr(probabilite);
    end;



[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention - 17 juin 2012 à 16:36
0
Merci
J'ai toujours la même erreur.
Malgré tout, si tu as des améliorations à me proposer, je suis preneur ...
Je ne fais que débuter en Delphi
Commenter la réponse de JacKrauser
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 17 juin 2012 à 22:32
0
Merci
Bonjour,

En plaçant la sélection dans la fenêtre de message sur la ligne indiquant l'erreur interne C1091, que dit l'aide en ligne ?

May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog
JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention - 17 juin 2012 à 22:44
0
Merci
Euh c'est à dire ?
Je n'arrive pas à "introduire" ce code dans l'onglet construction.
Je commence en Delphi, il ne doit pas s'agir d'une manipulation qui m'est inconnue.
Commenter la réponse de JacKrauser
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 17 juin 2012 à 23:19
0
Merci
Peux-tu nous dire avec quelle version de Delphi tu rencontres ce message d'erreur ?

May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog
JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention - 17 juin 2012 à 23:27
0
Merci
Je suis sous Delphi 7.
J'aurai du le préciser plus tôt.
Commenter la réponse de JacKrauser
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 17 juin 2012 à 23:45
0
Merci
Salut DelphiProg, ça fait plaisir de voir à nouveau parmi nous.

sinon y a t il autre chose dans le code que cette procédure ?

et peux tu mettre le code en ligne sur un site de téléchargement(partage) ?
ce serait bien plus simple pour débusquer cette erreur.


[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention - 18 juin 2012 à 00:02
0
Merci
Je mettrai en ligne le code complet vers 8h.
Je vous remercie de vous occuper de mon code ;D
Commenter la réponse de JacKrauser
JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention - 18 juin 2012 à 08:45
Commenter la réponse de JacKrauser
JacKrauser 31 Messages postés lundi 14 mai 2012Date d'inscription 21 août 2012 Dernière intervention - 18 juin 2012 à 10:36
0
Merci
Ca marche super bien ;)
Merci, je n'avais même pas remarqué cette erreur :D
Commenter la réponse de JacKrauser

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.