Отладчик не находит строку исключения, ни в глубину, ни в конец.
Код:
procedure LoadLogo;
const
RES_APP_LOGO = 'AppAboutLogo';
var
resourceStream : TResourceStream;
begin
try
resourceStream := TResourceStream.Create( HInstance, RES_APP_LOGO, RES_TYPE_FXRESOURCES );
resourceStream.Position := 0;
ImageLogo.Picture.Bitmap.LoadFromStream(resourceStream); //---> causes exception (A)
Refresh();
finally
FreeAndNil(resourceStream);
end;
end;
procedure TForm.Initialize;
begin
//do something....
LoadLogo(); //(C)
AnotherFunction(); //<----- debugger points here (B)
end;
procedure TForm.CreateCreate(Sender : TObject);
begin
Initialize();
end;
В исключении в местоположении (A), где «Использовать DCU отладки» = false, отладчик указывает на (B) строку вне функции, вызываемой после возникновения исключения. С помощью «Использовать отладочные DCUs = true» он разрывается в универсальном метателе исключений в Graphics.pas. С классом исключения все в порядке, местоположение не является правильным или полезным с точки зрения отладки - ни местоположение вызова (C), ни точка реальной причины (A) не расположены.
Это требует рассмотрения стека вызовов, чтобы вернуться к причине, которая кажется неправильной.
Есть идеи?