Comportement différent du programme suivant le mode d'exécution
extrait 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
|
procedure TfrmScan.iLecteurValidate(Sender: TObject; var Line: String;
var sAction: TValidateAction);
begin
sAction := ConvertLine(Line);
if sAction <> vaOk Then
With TfrmCorrection.Create(Self) do // 1er point d'arret
try // 2ème point d'arret
Self.Hide;
eCorrection.Text := line;
ViewImege(iLecteur.msFJpgImage);
if ShowModal=mrOK then begin
Line := eCorrection.text;
sAction := vaCorrected
end
else begin
sAction := vaDELETED;
Inc(nbALire)
end;
finally
free;
Self.Show
end
end; |
j'exécute le prog. en mode normal (F9), l'exécution s'arrete sur le 1er point d'arret : jusque là rien de bizarre. Ensuite 2 cas possibles...
1- si je continue en mode F9 j'ai immédiatement la fenetre d'erreur suivante : le projet a provoqué une classe d'exception EInvalidOperation avec le message 'le canevas ne permet pas de dessiner' (etc...)
2- si je continue en mode pas-à-pas (F8 ) , l'exécution passe au 2ème point d'arret puis je poursuit en mode F9 sans problème : la fenetre TfrmCorrection s'affiche (etc...)
>> mon but était de faire du pas à pas pour débogger le prog. mais je ne comprend pas la différence de comportement je ne vois pas comment je peux corriger l'erreur ! y aurait-il une explication ?