Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.02.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
Xmen   (2014-01-10 09:52) [0]

Привет.
сделал прогу открывает Excel COM методом. В форму разместил 3 компоненты ExcelApplication, ExcelWorkbooks, ExcelSheets.  при открытие и записи программно нет проблем. Мне теперь нужно сделать так чтобы при закрытие Excel уловить это событие и обработать его. Сохранить файл и архивировать его. Этот код написал в TForm1.ExcelApplication1WorkbookBeforeClose.
begin
   wb.Close();
   ExcelApplication1.Disconnect;
end;
После первого запроса на сохранения выполняется код. После этого этот событие заново сработает. Где я сделал ошибку? Как можно правильно это сделать? спасибо за ответ.


 
ВладОшин ©   (2014-01-10 10:06) [1]

.OnBeforeClose := nil;
.OnWorkbookBeforeClose := nil;
или что преследуется то?


 
Xmen   (2014-01-10 10:30) [2]

>>.OnBeforeClose := nil;
>>.OnWorkbookBeforeClose := nil;
>>или что преследуется то?

можете уточнить  ответ. спасибо


 
ВладОшин ©   (2014-01-10 10:34) [3]

э.. смотрите:

я спросил: что преследуется то?
Вы не ответили.

Наоборот, спросили:
> можете уточнить  ответ.
Хотя.. может даже и не спросили :) Может, Вы утверждаете?  :))


 
Xmen   (2014-01-10 10:41) [4]

Извините я не понял ваш вопрос


 
Palladin ©   (2014-01-10 10:44) [5]

вы мне своим диалогои мозг сломали


 
Xmen   (2014-01-10 10:54) [6]

Вот код

procedure TForm1.Button1Click(Sender: TObject);
var icid:Integer;
begin
icid:=LOCALE_SYSTEM_DEFAULT;
ExcelApplication1.ConnectKind:=ckNewInstance;
ExcelApplication1.AutoQuit:=true;
ExcelApplication1.Visible[icid]:=true;
ExcelApplication1.AutoConnect:=true;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,icid));
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.ActiveSheet as ExcelWorkSheet);
end;

procedure TForm1.ExcelApplication1WorkbookBeforeClose(ASender: TObject;
 const Wb: _Workbook; var Cancel: WordBool);
begin
 if MessageBox(0,"Закрывается ворд сохранить данные в базе?","Сохранение в базе", MB_OKCANCEL or MB_TOPMOST)=IDOK  then
    begin
    ...
     //код для сохранение в базе
    ...
     ExcelApplication1.Workbooks.Close(LOCALE_USER_DEFAULT);
     ExcelApplication1.Disconnect;
     ExcelApplication1.Quit;
     ExcelApplication1:=nil;
   end;
end;


 
Inovet ©   (2014-01-10 11:12) [7]

> [3] ВладОшин ©   (10.01.14 10:34)
> Вы утверждаете?

Повелевает


 
ВладОшин ©   (2014-01-10 12:11) [8]


> После первого запроса на сохранения выполняется код. После этого этот событие заново сработает. Где я сделал ошибку? Как можно правильно это сделать?

"Это" - что? что именно?

Если нужно, что бы не срабатывало - можно сказать что ExcelApplication1.OnWorkbookBeforeClose := nil;

>> ExcelApplication1 := nil;
не всегда работает
Когда выйдет за пределы видимости - тогда и грохнется сама.


 
brother ©   (2014-01-15 12:10) [9]

Ааа мой мозг! Вы это спецом?



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

Форум: "Начинающим";
Текущий архив: 2015.02.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.019 c
2-1389268749
Никита Парфенов
2014-01-09 15:59
2015.02.15
Как лучше конектиться к Firebird?


15-1405116396
Edgar_Wine
2014-07-12 02:06
2015.02.15
Вероятность что при бросании двух костей выпадет хоть одна 6


2-1389616067
Alex_C
2014-01-13 16:27
2015.02.15
Контертировать string[10] в XE2


2-1389346370
NNK_RTR
2014-01-10 13:32
2015.02.15
Компонент RichEdit


15-1405024202
Юрий
2014-07-11 00:30
2015.02.15
С днем рождения ! 11 июля 2014 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский