![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ExcelApplication1WorkbookBeforeClose не получается закрыт Excel [D7, WinXP]
Xmen © (2012-01-25 11:16:00)У меня есть прога которая открывает сжаты файл из базы и разархивирует и отображает 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. Если не закрыть то архивирование не правильно получается.
дикий (2012-01-27 11:01:00) [1]больно слышать.
Xmen (2012-01-27 10:19:00) [2]да но в ExcelApplication1 нет события after closing и before close.
дикий (2012-01-27 10:02:00) [3]Я на пямять не помню чего там есть, но, кэп говорит что:
после закрытия = after closing
а
before close = перед закрыть
Xmen (2012-01-27 09:19:00) [4]как определить что ExcelApplication1 закрывается?
мне нужно почистит временный каталог после закрытия ексел документа.
procedure TForm.ExcelWorkbook1Deactivate(Sender: TObject);
begin
DeleteFile(fName);
RemoveDir('temp\');
end;
Xmen (2012-01-26 07:56:00) [5]как тогда можно уловить закрытие Excel, чтобы потом архивировать документы и почистить его папки?
brother (2012-01-25 14:46:00) [6]ты не понял, событие у тебя BeforeClose - перед закрытием... а ты уже начинаешь архивировать, остальное - под чутким контролем доктора)
Xmen (2012-01-25 13:02:00) [7]То есть я сделал ошибку
> ExcelApplication1.Quit;
> ExcelApplication1.Quit;
> ExcelApplication1.Disconnect;
> ExcelApplication1.Free;
поместив его в внутр WorkbookBeforeClose
brother (2012-01-25 11:46:00) [8]ну и это зачем?
> ExcelApplication1.Quit;
> ExcelApplication1.Quit;
> ExcelApplication1.Disconnect;
> ExcelApplication1.Free;
> ExcelApplication1.Quit;
> ExcelApplication1.Disconnect;
> ExcelApplication1.Free;
brother (2012-01-25 11:41:00) [9]это не смущает?
TAnalizForm.ExcelApplication1Workbook BeforeClose