Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    octobre 2005
    Messages
    2 200
    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 : 2 200
    Points : 2 661
    Points
    2 661

    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+.

  2. #2
    Membre éprouvé Avatar de JustMe
    Inscrit en
    juillet 2002
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 469
    Points : 496
    Points
    496

    Par défaut

    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/

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    5 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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 : 5 192
    Points : 7 616
    Points
    7 616

    Par défaut

    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

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    octobre 2005
    Messages
    2 200
    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 : 2 200
    Points : 2 661
    Points
    2 661

    Par défaut

    Bonjour,

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

    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+.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    octobre 2005
    Messages
    2 200
    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 : 2 200
    Points : 2 661
    Points
    2 661

    Par défaut

    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+.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •