Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.06.03;
Скачать: CL | DM;

Вниз

ExcelApplication1WorkbookBeforeClose не получается закрыт Excel   Найти похожие ветки 

 
Xmen   (2012-01-25 11:16) [0]

У меня есть прога которая открывает сжаты файл из базы и разархивирует и отображает Excel файл на экране и на обработчика закрытия файла я прописал этот код.
procedure TAnalizForm.ExcelApplication1WorkbookBeforeClose(ASender: TObject; const Wb: _Workbook; var Cancel: WordBool);
begin
 if MessageBox(0,"Закрывается Excel Сохранить данные в базе?","Сохранение в базе", MB_OKCANCEL or MB_TOPMOST)=IDOK  then
    begin
      path:= ExtractFilePath(Application.ExeName);
      //Wb.Close(False,EmptyParam,EmptyParam,1);
      ExcelWorksheet1.Disconnect;
      ExcelApplication1.Quit;
      ExcelApplication1.Quit;
      ExcelApplication1.Disconnect;
      ExcelApplication1.Free;

      ExecAndWait(path+"rar.exe"," a -r -ep1 -df aa.rar temp\*",SW_HIDE);
      DM.dtsDog.Edit;
      TBlobField(DM.dtsDog.FieldByName("prodoc")).LoadFromFile(path+"aa.rar");
      DM.dtsDog.Post;
      DM.TR.CommitRetaining;

      DeleteFile(fName);
    end
 else
    begin
      ExcelWorksheet1.Disconnect;
      ExcelApplication1.Quit;
      ExcelApplication1.Disconnect;
      ExcelApplication1.Free;
    end;
end;


Excel в процессе работы не закрывается и висит.
Как нежно правильно закрыть Excel. Если не закрыть то архивирование не правильно получается.


 
brother ©   (2012-01-25 11:41) [1]

это не смущает?
TAnalizForm.ExcelApplication1WorkbookBeforeClose


 
brother ©   (2012-01-25 11:46) [2]

ну и это зачем?

>      ExcelApplication1.Quit;
>      ExcelApplication1.Quit;
>      ExcelApplication1.Disconnect;
>      ExcelApplication1.Free;


>      ExcelApplication1.Quit;
>      ExcelApplication1.Disconnect;
>      ExcelApplication1.Free;


 
Xmen   (2012-01-25 13:02) [3]

То есть я сделал ошибку
>      ExcelApplication1.Quit;
>      ExcelApplication1.Quit;
>      ExcelApplication1.Disconnect;
>      ExcelApplication1.Free;
поместив его в внутр WorkbookBeforeClose


 
brother ©   (2012-01-25 14:46) [4]

ты не понял, событие у тебя BeforeClose - перед закрытием... а ты уже начинаешь архивировать, остальное - под чутким контролем доктора)


 
Xmen   (2012-01-26 07:56) [5]

как тогда можно уловить закрытие Excel, чтобы потом архивировать документы и почистить его папки?


 
Xmen   (2012-01-27 09:19) [6]

как определить что ExcelApplication1 закрывается?
мне нужно почистит временный каталог после закрытия ексел документа.
procedure TForm.ExcelWorkbook1Deactivate(Sender: TObject);
begin
     DeleteFile(fName);
     RemoveDir("temp\");
end;


 
дикий   (2012-01-27 10:02) [7]

Я на пямять не помню чего там есть, но, кэп говорит что:
после закрытия = after closing
а
before close = перед закрыть


 
Xmen   (2012-01-27 10:19) [8]

да но в ExcelApplication1 нет события after closing и before close.


 
дикий   (2012-01-27 11:01) [9]

больно слышать.



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

Текущий архив: 2012.06.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
4-1257417254
Alex_C
2009-11-05 13:34
2012.06.03
Использование COM-порта нескролькими приложениями


15-1328041805
Юрий
2012-02-01 00:30
2012.06.03
С днем рождения ! 1 февраля 2012 среда


15-1327586372
Асм
2012-01-26 17:59
2012.06.03
Встроенный ассемблер в Delphi


3-1276157864
O.O
2010-06-10 12:17
2012.06.03
Записать 0 в поле


4-1257507611
Валигози
2009-11-06 14:40
2012.06.03
Как программно добавить пароль в "хранилище паролей"?