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

Вниз

Подавление сообщений Excel   Найти похожие ветки 

 
Сатир   (2006-02-24 14:45) [0]

Здраствуйте, Уважаемые!
Создаю объект Excel"я
FXLApp := CreateOleObject("Excel.Application");
Потом вношу какие-то изменения в этот excel
Как после закрытия этого Excel"я подавить сообщение о его сохранении?
Чтобы Workbook закрывался без вывода сообщения "Сохранить изменения?"
Заранее благодарен за помощь.


 
DSKalugin ©   (2006-02-24 14:54) [1]

destructor TxlsPrice.Destroy;
begin
 Workbook.Saved:=True;
 ExcelApp.Quit; // закрытие
 inherited;
end;


 
Bless ©   (2006-02-24 15:02) [2]

xlApp.Application.EnableEvents := false;
?


 
Суслик ©   (2006-02-24 15:03) [3]

fApp := CreateOleObject("Excel.Application");
fApp.DisplayAlerts := False;


 
Bless ©   (2006-02-24 15:07) [4]

Суслик ©   (24.02.06 15:03) [3]>

Точно!


 
umbra ©   (2006-02-24 15:12) [5]

еще один вариант:

Workbook.Close(false);


 
Суслик ©   (2006-02-24 15:20) [6]

Я обычно делаю так. Создаю книгу в скрытом режиме, заполняю значениями, потом показываю.

Так создаю
  fApp := CreateOleObject("Excel.Application");
  fApp.Visible := False;
  fApp.Interactive := False;
  fApp.DisplayAlerts := False;
  fApp.ScreenUpdating := False;
  fApp.SheetsInNewWorkbook := 1;


Так показываю
  fApp.Visible := True;
  fApp.Interactive := True;
  fApp.DisplayAlerts := True;
  fApp.ScreenUpdating := True;
  fApp.Application.WindowState := TOLEEnum(xlMaximized);
  fApp.UserControl := True;


Обратите внимание на жирненькую строчку. Без нее испытывал переодические проблемы с тем, что книга показывается, но пользователь не может с ней ничего сделать. Про UserControl надыбал инфу на каком-то сайте, кажется "королевстве". Вроде помогло.


 
Сатир   (2006-02-24 16:11) [7]

>fApp.DisplayAlerts := False;
не помогло.
поставил после создания
но всё равно вылазит такое сообщение.

---------------------------
Microsoft Excel
---------------------------
Do you want to save the changes you made to "tmp3877262841.xls"?
---------------------------
Да   Нет   Отмена  
---------------------------

Какие ещё могут быть варианты?


 
Суслик ©   (2006-02-24 16:12) [8]

странно...
должно работать.
ты код приведи.


 
umbra ©   (2006-02-24 16:34) [9]

Workbook.Close(false); //не сохранять изменения
Workbook.Close(true); //сохранить изменения


 
Сатир   (2006-02-24 16:54) [10]

Excel закрывается не программно, а путём нажатия стандартного крестика закрытия приложения.
и вот после этого выдает такое сообщения.

Workbook.Saved:=True;
вообще-то  Workbooks
Workbook.Close(false);
---------------------------
Debugger Exception Notification
---------------------------
Project REFUS.exe raised exception class EOleSysError with message "Недопустимое число параметров". Process stopped. Use Step or Run to continue.
---------------------------
OK   Help  
---------------------------


 
umbra ©   (2006-02-24 17:01) [11]

если быть точным, на до писать следующее
Workbook.Close(SaveChanges:=false);

но неясно, какой смысл это делать, если ексел уже закрыт "путём нажатия стандартного крестика"


 
Сатир   (2006-02-24 17:05) [12]

Вообщем, разобрался.
FXLApp.DisplayAlerts := False; нужно ставить не после создания CreateOleObject, а перед вызовом FXLApp.Qiut;



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

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

Наверх




Память: 0.49 MB
Время: 0.042 c
4-1135680531
Ньюб2
2005-12-27 13:48
2006.03.19
выключить+включить устройство


15-1140817487
kent
2006-02-25 00:44
2006.03.19
железо


15-1140601946
Compton's G
2006-02-22 12:52
2006.03.19
Сетевой эмулятор


3-1138078415
FunkyByte
2006-01-24 07:53
2006.03.19
Ошибка при запросе SELECT в ADODataSet


15-1140510856
LordOfRock
2006-02-21 11:34
2006.03.19
Программа слежения за компом.