Bonjour,

Las de tourner en round : J'essaye de détecter et de signaler via un ShowMessage le cas d'un débordement de capacité d'un Int64 de la façon suivante mais ça ne marche pas (en rose ci-dessous). Par contre la détection du débordement de capacité d'un Extended (en vert ci-dessous) marche ... mais je n'en ai pas besoin.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.EIntOverflow1Click(Sender: TObject);
var       i64 : int64; ext : extended;
begin
          {$Q+}
          try i64:=9223372036854775807; //<- presque Int64Max
              i64:=i64*i64;             //<- je provoque le débordement
              Memo1.lines.Add('i64 : '+intToStr(i64));  
          except
              on EIntOverflow  do ShowMessage('Débordement capacité Int64');
          end;
          
          {$R+}
          try ext:=1.1E4932; //<- ExtendedMax
              ext:=ext*2;    //<- je provoque le débordement
              Memo1.lines.Add('ext : '+FloatToStr(ext));
          except
              on EOverflow do ShowMessage('Débordement capacité Extended');
          end;
end;
Quelqu'un aurait-il une idée pour faire fonctionner la détection et le signalement du débordement de capacité de l'Int64 ???. S.V.P et merci par avance.

A+.