Кто работал в Delphi 7 и Excel2000?

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Ответить
lena
Сообщения: 1
Зарегистрирован: 09 сен 2004, 05:35

09 сен 2004, 06:14

Помогите!!! Программа выдаёт ошибку при повторном запуске "программа Excel вызвала ошибку защиты памяти в модуле v8exe.dll по адресу 000f:000007a6" Мучаюсь, ничего не получается!
Делаю так:
ExcelApp1.Connect;
ExcelApp1.Workbooks.Add('Test', 0);
ExcelWB1.ConnectTo(ExcelApp1.ActiveWorkbook);
Sheet := ExcelApp1.Workbooks[1].Worksheets[1];
------------------------------------------------------------
{отсоеденимся от Excel}
ExcelApp1.DisplayAlerts[0] := DM.Ops.SaveToFile; // выводить/не выводить запрос о сохранении файлов
ExcelWB1.Close;
ExcelWB1.Disconnect;
ExcelApp1.Disconnect;
ExcelApp1.Quit;
WaitFormUnit.WaitFormForm.Visible := false;
Application.ProcessMessages;
{конец передачи в Excel}
Где искать ошибку??
Поделитесь опытом!
Заранее спасибо!! :?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

13 сен 2004, 00:10

ExcelWB1.ConnectTo(ExcelApp1.ActiveWorkbook); - довольно странная манипуляция.

Я бы вообще отказался от использования ExcelWB1 (точнее от TExcelWorkbook).

Код: Выделить всё

var
  ExcelWB1: ExcelWorkBook;
  Sheet: Variant;
........

  ExcelApp1.Connect;
  ExcelApp1.Workbooks.Add('Test', 0);
  ExcelWB1:=ExcelApp1.ActiveWorkbook;
  Sheet:=ExcelWB1.ActiveSheet;

........


  //А в конце
  ExcelApp1.DisplayAlerts[0] := ...;
  ExcelApp1.Quit; 
  ExcelApp1.Disconnect; 
  //Но никак не наоборот!



Попробуйте также:
ConnectionKind:=ckNewInstance и AutoQuit:=true;

Кроме того, ошибки могут возникать при запуске под отладчиком. Т.е. не нажимайте F9 в Delphi для запуска, а только компилируйте проект, а запускайте готовое приложение.


А еще объясните, что такое
WaitFormUnit.WaitFormForm.Visible := false;
Application.ProcessMessages;
Ответить