Народ, помогите. Есть древняя программа на Delphi 7. В ней создаются отчёты в Excel через Ole. До недавнего времени всё отлично работало. Поставили новой сотруднице - стала выдаваться ошибка "Недостаточно памяти для выполнения операции".
Система Win 7 x86, Office 2013. На других компьютерах с той же виндой и тем же офисом всё нормально.
Пример кода:
Код:
procedure TMenu.N26Click(Sender: TObject);
var
cntwb:integer;
path,sql:string;
XL: OleVariant;
i,row:integer;
const col_count=3;
begin
try
XL:=GetActiveOleObject('Excel.Application');
except
XL:=CreateOLEObject('Excel.Application');
end;
CntWB:=XL.Workbooks.Count+1;
XL.Visible:=True;
path:=ExtractFilePath(Application.ExeName)+'Template\org_otch';
XL.WorkBooks.Add(path);
XL.Workbooks[CntWB].WorkSheets[1].Name:='Справочник организаций';
...
Ошибка выдаётся на строчке:
Код:
XL.Workbooks[CntWB].WorkSheets[1].Name:='Справочник организаций';
Если её закоментить, то на следующем обращении к Excel:
Код:
XL.Workbooks[CntWB].WorkSheets[1].Cells(row,1):=inttostr(row-4);
Памяти на компе полно свободной. Вообще не знаю, куда копать.