Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.005 c
2-1327475787
Xmen
2012-01-25 11:16
2012.06.03
ExcelApplication1WorkbookBeforeClose не получается закрыт Excel


15-1328211602
oldman
2012-02-02 23:40
2012.06.03
Классный текст песни!!! (выдержка)


15-1327388540
OW
2012-01-24 11:02
2012.06.03
Как думаете, в чем лучше всего хранить деньги?


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


15-1328387403
Юрий
2012-02-05 00:30
2012.06.03
С днем рождения ! 5 февраля 2012 воскресенье




   Наверх