Frodo_Torbins Спасибо, про "Range checking" забыл. Включил, но не помогло.
EurekaLog ловит ошибку на строке inc(self.fdate) - поле объекта типа Integer.
Очень смущает, как так, что без EurekaLog прога не запускается (ошибка при создании формы), а с EurekaLog запускается (что такое происходит?), а ошибка (возможно, только первая) при загрузки из файла, но эта процедура работала прежде без сбоев:
if FileExists(SPTFileName) then
begin
try
FStream:=TFileStream.Create(SPTFileName,fmOpenRead);
FStream.Position:=0;
FStream.Read(SPTKey,SizeOf(SPTKey));
if SPTKey<>'S'then
begin
MessageDlg('NOT STD FILE!',mtError, [mbOK],0);
FStream.Free;
exit;
end;
FStream.Read(SPTKey,SizeOf(SPTKey));
if SPTKey<>'P'then
begin
MessageDlg('NOT STD FILE!',mtError, [mbOK],0);
FStream.Free;
exit;
end;
FStream.Read(SPTKey,SizeOf(SPTKey));
if SPTKey<>'T'then
begin
MessageDlg('NOT STD FILE!',mtError, [mbOK],0);
FStream.Free;
exit;
end;
//inc(FSPTCount); {как вариант}
inc(self.FLoadedSPT); <-------------------------------------------------падает здесь
SetLength(FAnArray,FLoadedSPT); // 3-Dimension array arr[a]
SetLength(FAnArray[FLoadedSPT-1],1); //arr[a,b]
SetLength(FAnArray[FLoadedSPT-1,0],1); //arr[a,b,c]
Предположительно ошибка "плавающая" - вспомнил, что в одной из старых версий программы тоже вдруг перестала запускаться одна из форм, только на тот момент она оказалась "лишней"...вообщем, чувствую, надо будет долго-долго искать...