Bonjour,

J'essaie de faire fonctionner une simple expression try except end
voici le code archi simple

Note: SL contient une chaine illégale = '123.45a'

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
 
Function Parse(L,S: String; Args: array of const): Boolean;
...  
...
else If Uppercase(SS) = Uppercase('%f') then
begin
    Try
      TempReal := StrToFloat(SL);     { erreur de conversion ici }
    except
      Application.MessageBox('Erreur.', 'Look', MB_OK);
    end;
 
    VarArr[ArgNum] := TempReal;
    Inc(ArgNum);
end
...
...
Je trace en mode debug et il ne veux rien savoir et plante à l'instruction TempReal := StrToFloat(SL) sans passer sur l'instruction dans le bloc except = Application.MessageBox ? Il y a bien un message:
Le projet ... à provoqué une classe d'exeption EConvertError avec le message '123.45A' ...

Je suis peut-être trop fatigué et je ne vois plus rien mais je ne trouve pas, il y a peut-être une directive genre {$I+} qui n'est correcte pourtant j'en ai ajouté aucune dans le code. Il me semble que ca déjà bien fonctionné.

Salut.