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.
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.
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;
A+.![]()
Partager