Bonjour à toutes et à tous,

Aussi bizarre que cela puisse paraître, dans l'application suivante, j'utilise une exception pour lancer le programme :

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
20
21
22
program Sissy_WL;
 
{$mode objfpc}{$H+}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms;
 
{$R *.res}
 
begin
   Application.Initialize;
  try
    xB:= yB div xB;          {Si xB = 0 --> exception --> bon fonctionnement}
  except
    Application.CreateForm(TBase, Base);
    Application.Run;
  end;
end.
Si je lance le programme à partie de son fichier .exe, cela fonctionne très bien.

Si je lance l'application à partir de l'EDI (Lazarus 1.2.4, mais pareil avec les versions précédentes), l'application ne se lance pas et j'ai le message :

Le projet SISSY_WL a levé une exception de class 'External SIGFPE'
In file 'Sissy_WL.lpr at line 17
xB:= yB div xB; {Si xB = 0 --> exception --> bon fonctionnement}
Ce qui est ci-dessus est un exemple d'arrêt, je l'obtiens dans d'autres cas (alors que le lancement par l'exe fonctionne).

Y a-t-il un moyen d'éviter cela ?

Merci de vote aide.

Pierre