Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 06:51   #1
amadi
 
Регистрация: 21.01.2011
Сообщений: 5
По умолчанию Как сделать закрытие формы вместе закрытием активного лита eхel

Проблема в чем, надо сделать закрытие формы, но программа может иметь открытые рабочие листы exel, а может и не иметь.

Код:
procedure TForm1.Button4Click(Sender: TObject);
begin
EF.DisplayAlerts := false;
EF.Activeworkbook.close;
close;
end;
Как сделать так чтобы чтобы программа закрывала форму и активный документ exel, даже если активный Exel не открыт.

Последний раз редактировалось Stilet; 01.02.2011 в 08:28.
amadi вне форума Ответить с цитированием
Старый 31.01.2011, 09:17   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Как сделать так чтобы чтобы программа закрывала форму и активный документ exel, даже если активный Exel не открыт.
А как можно закрыть не открытое?

Вообще, на сколько я помню, команда Close у MS имеет набор параметров, один из которых отвечает за сохранение. Попробуйте закрыть весь Exel указав ему принудительное сохраниние/несохранение.
Sibedir вне форума Ответить с цитированием
Старый 01.02.2011, 08:06   #3
amadi
 
Регистрация: 21.01.2011
Сообщений: 5
По умолчанию

У меня список listbox, имеет сслки на книжки эксель если щелкнуть на listbox, открывается нужный а фаил, а при и выборе другой записи предыдушая книжка закрывается, так вопрос в том, что надо сделать кнопку выхода, а когда программа тока запущена, кнопка выхода не работает потому что нет активного листа, хотелось бы ее сделать независимой, чтобы кнопка выход работала и при окрытой активной книге эксель и при не открытой, те при запуске программы когда еще ничего не выбрано, а закрытие активной книжки обязательно, не закроешь и она остается висеть в памяти даже если форма закрыта.

Последний раз редактировалось amadi; 01.02.2011 в 08:12.
amadi вне форума Ответить с цитированием
Старый 01.02.2011, 08:51   #4
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

Код:
 
try
 // Excel.ActiveWorkBook.Close; // Закрываем документ если он есть
  Excel.Quit; // или так закрываем его
  Excel := UnAssigned; // Убиваем процесс
except
  ShowMessage('Нет активного документа');
end;
как то так.
java_91 вне форума Ответить с цитированием
Старый 01.02.2011, 08:58   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Цитата:
кнопка выхода не работает потому что нет активного листа, хотелось бы ее сделать независимой
ну так и сделай ее (доступность кнопки button.enabled) независимой, а в коде просто проверяй: есть ли выделенный Listbox; есть ли нужная (текущая, активная) книга. И выполняй нужные (и пропускай ненужные) действия. по видимому те проверки которые управляют доступностью кнопки надо перенести в обработку нажатия.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 03.02.2011, 07:42   #6
amadi
 
Регистрация: 21.01.2011
Сообщений: 5
По умолчанию

Ура заработало, фишка в чем, создаем глобальную переменную у меня a:integer, на formcreate значение будет a:=0, там где происхотит выбор из listbox т.е. Exel.Workbooks.open[itemname] после него а:=1, потом пишем кнопку выхода

procedure TForm1.Button4Click(Sender: TObject);
begin
if a=1 then
begin
EF.DisplayAlerts := false;//EF тоже самое что и Exel
EF.Activeworkbook.close;
close
end
else
begin
close;
end;
end;

Все работает, всем спасибо за помощь, кто откликнулся
amadi вне форума Ответить с цитированием
Старый 03.02.2011, 12:49   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Не спешите радоваться. Ибо ваш вариант содержит БОЛЬШУЮ логическую ошибку.
Если документ был открыт по клику в ListBox'е, а потом закрыт пользователем/системой/самим Excel'ем (при возникновении какой-нибудь ошибки), то ваша кнопка Button4 начнет глючить.
Sibedir вне форума Ответить с цитированием
Старый 03.02.2011, 12:55   #8
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Код:
try {.. закрывай здесь что хошь, хоть черта лысого ..} except end;
mss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрытие формы annaangel Общие вопросы Delphi 2 09.10.2009 13:26
Закрытие формы RIO Общие вопросы Delphi 2 27.08.2009 17:10
проблема с закрытием формы betirsolt Общие вопросы Delphi 46 03.08.2009 01:00
Как сделать границы формы другого цвета,формы?? Дима я Общие вопросы Delphi 3 22.06.2009 07:24