Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Langage
Langage Tout ce qui concerne le langage (POO, syntaxe, message d'erreur...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/12/2012, 13h49   #1
Gilbert Geyer
Modérateur
 
Homme
Ingénieur retraité
Inscription : octobre 2005
Messages : 1 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur retraité

Informations forums :
Inscription : octobre 2005
Messages : 1 941
Points : 2 503
Points : 2 503
Par défaut [Erreur fatale] : Erreur interne : C1141

Bonjour,

J'ai le message d'erreur suivant lors de la compilation sous Delphi 5 :
[Erreur fatale] uLesBezier.pas(1013): Erreur interne : C1141
J'ai aussi fouillé le net pour savoir ce qu'est cette erreur C1141 mais sans trouver.
C'est quoi cette erreur et comment la rectifier ???. S.V.P
Elle survient dans ce bout du code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
end else begin
             if (TD=PolyGoneEtoile) and (not odd(nbPc)) then
             begin 
                 jp1:=(nbPc shr 1)-1;
                 if PointSurDroiteD(Poly[0],Poly[jp1], Pt, m)
                 then begin Result:=True; EXIT; end;
                 for jpc:=1 to jp1 do begin
                      if PointSurDroiteD(Poly[jpc-1],Poly[jpc], Pt, m)
                      then begin Result:=True; EXIT; end;
                 end;
                 if jp1 = jp1 then begin //<-- bidouille contournant l''Erreur fatale C1141 sinon il me faut supprimer les 2 lignes suivantes  
                     if PointSurDroiteD(Poly[jp1+1],Poly[High(Poly)], Pt, m)
                     then begin Result:=True; EXIT; end;
                 end;
                 {if jp1 = jp1 then begin //<- mais ici la même bidouille ne résoud pas l''Erreur fatale C1141
                     for jpc:=jp1+2 to High(Poly) do begin
                         if PointSurDroiteD(Poly[jpc-1],Poly[jpc], Pt, m)
                         then begin Result:=True; EXIT; end;
                     end;
                 end;}
             end;
         end;
end; // PointSurPolygone
Donc si quelqu'un avait une idée cela m'arrangerait bien.

A+.
Gilbert Geyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 00h36   #2
JustMe
Membre éprouvé
 
Avatar de JustMe
 
Inscription : juillet 2002
Messages : 442
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 442
Points : 457
Points : 457
Vous avez essayer désactiver l'optimisation des options de compilation?
__________________
<On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**
http://www.mobile-tactile.com/
JustMe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 09h28   #3
Rayek
Modérateur
 
Avatar de Rayek
 
Homme
Développeur informatique
Inscription : mars 2005
Messages : 4 991
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2005
Messages : 4 991
Points : 7 729
Points : 7 729
Euh ... quel est l’intérêt de comparer une valeur à elle même ?

__________________
Modérateur Delphi Combattez la brute
Aucune réponse aux sollicitations techniques par MP

Le guide du bon forumeur :__________
[Projet en cours] Des unités pour faciliter l'utilisation d'indy : EasyIndy 1.3
Rayek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 10h06   #4
Gilbert Geyer
Modérateur
 
Homme
Ingénieur retraité
Inscription : octobre 2005
Messages : 1 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur retraité

Informations forums :
Inscription : octobre 2005
Messages : 1 941
Points : 2 503
Points : 2 503
Bonjour,

Citation:
JustMe : Vous avez essayer désactiver l'optimisation des options de compilation?
Non, mais je vais essayer.

Citation:
Rayek : Euh ... quel est l’intérêt de comparer une valeur à elle même ?
if jp1 = jp1 then
Bin, comme je n'ai pas trouvé de réponse sur le net, ni d'erreur de syntaxe dans le code j'ai essayé toutes sortes de bidouillages pour contourner l'erreur de compilation, et celle-ci a permis de faire digérer les deux lignes de code suivant ce if ... mais la même bidouille ne marche pas pour la suite.

Bon, je vais essayer de desactiver l'optimisation des options de compilation.

A+.
Gilbert Geyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 12h13   #5
Gilbert Geyer
Modérateur
 
Homme
Ingénieur retraité
Inscription : octobre 2005
Messages : 1 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur retraité

Informations forums :
Inscription : octobre 2005
Messages : 1 941
Points : 2 503
Points : 2 503
Re-bonjour,

La désactivation de l'optimisation des options de compilation n'a rien donné.

Par contre en réorganisant le bout de code comme suit le compilo ne tousse plus :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function PointSurPolygone(const Pt : tPointD; TD : tTypeDessin; Poly: tAOPD): boolean;
const    m = 5; // marge de tolérance
var      nbPc,jp1 : integer;
 
         function PointSurAutres(j1,j2 : integer) : boolean;
         var      j : integer;
         begin    for j:=j1 to j2 do begin
                      Result:=PointSurDroiteD(Poly[j-1],Poly[j], Pt, m);
                      if Result then Break;
                  end;
         end;
 
begin    Result:=False; nbPc:=length(Poly);
         if ((TD=PolyGoneEtoile) or (TD=PolygoneER)) and (not odd(nbPc)) then
         begin jp1:=(nbPc shr 1)-1;
               if PointSurDroiteD(Poly[0],Poly[jp1], Pt, m) then begin Result:=True; EXIT; end;
               Result:=PointSurAutres(1,jp1);
               if Result then EXIT;
               if PointSurDroiteD(Poly[jp1+1],Poly[High(Poly)], Pt, m) then begin
                    Result:=True; EXIT;
               end;
               Result:=PointSurAutres(jp1+2,High(Poly));
         end else
         begin if PointSurDroiteD(Poly[0], Poly[High(Poly)], Pt, m) then
               begin Result:=True; EXIT; end;
               Result:=PointSurAutres(1,High(Poly));
             EXIT;
         end;
end; // PointSurPolygone
Bon, je vais marquer comme résolu bien que j'aurais bien aimé savoir ce qu'est cette Erreur interne : C1141

A+.
Gilbert Geyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h58.


 
 
 
 
Partenaires

Hébergement Web