![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Народ, помогите. Есть древняя программа на 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); Памяти на компе полно свободной. Вообще не знаю, куда копать. |