Вниз
Скачать: CL | DM;

Некорректная работа с Excel   Найти похожие ветки 

← →
NewAndrey   (2003-02-12 20:06) [0]

Помогите, пожалуйста, разобраться как правильно работать с Excel.
Есть код аналогичный следующему:

var
xls: Variant;
WorkBook: Variant;
begin
xls:=CreateOleObject("Excel.Application");
if VarType(xls) <> VarDispatch then
begin
ShowMessage("MS Excel 97/2000 is not installed");
Exit;
end;
xls.DisplayAlerts:=False;
WorkBook:=xls.WorkBooks.Add;
{
забиваю данные
}
xls.application.activeWorkbook.saveas("FileName.xls");
WorkBook.Close;
xls.DisplayAlerts:=True;
xls.application.quit;
xls:=unassigned;
end;

Проблема в том, что если работать с одной рабочей книгой, то вроди все нормально.
Как только создается и закрывается несколько раз рабочая книга, то по завершении
приложения "вываливается" окно с сообщением об ошибке:

______________________________________________________________________
| OleMainThreadWndName: EXCEL.EXE - Application Error [x]|
|----------------------------------------------------------------------|
| |
| The Instruction at "0x650161fe" reference memory at "0x650161fe". |
| The memory could not be "read". |
| |
| Click on OK to terminate the application |
| Click on Cancel to debug the application |
| |
| |
| [ OK ] [ Cancel ] |
|______________________________________________________________________|

При этом Excel-ский процесс остается "висеть".
Подскажите, пожалуйста, как освобождать память выделяемую под рабочую книгу после
ее закрытия и как правильно "выгрузить" Excel.


← →
Романов Р.В. ©   (2003-02-12 20:20) [1]


> xls:=unassigned;


xls := null;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
14-76193
Романов Р.В.
2003-02-09 10:57
2003.02.24
Вопрос по интерфейсу


1-75866
Tyo
2003-02-13 18:17
2003.02.24
Скролл в TListView


14-76093
Victor72
2003-02-08 13:23
2003.02.24
Удаленная работа для программиста


3-75802
Sour
2003-02-06 13:19
2003.02.24
Как уменьшить рамер БД (Interbase).


3-75788
Kalinka
2003-02-06 10:38
2003.02.24
Как передать имя таблицы при вызове процедуры




   Наверх