Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
ВнизНе закрывается Excel. Почему? Найти похожие ветки
← →
Val (2003-04-10 15:54) [0]Коллеги, такой код:
var IXLSApp: TExcelApplication;
...
IXLSApp := TExcelApplication.Create(Self);
IXLSApp.ConnectKind := ckNewInstance;
IXLSApp.Connect;
...
if Assigned(IXLSApp) then
begin
IXLSApp.Disconnect;
FreeAndNil(IXLSApp);
end;
Не закрывает Excel, почему??
← →
panov (2003-04-10 16:04) [1]IXLSApp.Disconnect;
IXLSApp.Close;
IXLSApp.Free;
IXLSApp := nil;
← →
Val (2003-04-10 16:13) [2]>panov © (10.04.03 16:04)
.Close - нет такого метода, судя по всему. - undeclared identifier.
Есть Quit.
Никаких изменений.
← →
malkolinge (2003-04-10 16:14) [3]
> IXLSApp.Free;
Разве это корректно ?
По-моему достаточно
IXLSApp := nil;
← →
panov (2003-04-10 16:33) [4]Вот такой код прекрасно отрабатывает:
var
Form1: TForm1;
EA: TExcelApplication;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
EA := TExcelApplication.Create(Self);
EA.Workbooks.Add(EmptyParam,0);
EA.Connect;
EA.Visible[0] := True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
EA.Disconnect;
EA.Quit;
EA.Free;
end;
← →
malkolinge (2003-04-10 16:44) [5]procedure TExcelApplication.DisConnect;
begin
if Fintf <> nil then
begin
DisconnectEvents(FIntf);
if FAutoQuit then
Quit();
FIntf := nil;
end;
end;
Free IMHO - лишний, хотя в контексте данного примера(ведь ексел аплликейшн - компонент и удалять его будет владелец) все верно. ИМХО
← →
Val (2003-04-10 17:46) [6]да работает, конечно, такой и у меня работает.
а вот с указанным мной типом соединения как новый процесс - не работает, не закрывает.
← →
Bel (2003-04-10 18:57) [7]А ещё есть запущенные экземпляры Excel"я? Или не закрывает именно твоей программой запущенный процесс?
← →
panov (2003-04-10 19:17) [8]Поменяй местами Quit и Disconnect
procedure TForm1.Button2Click(Sender: TObject);
begin
EA.Quit;
EA.Disconnect;
EA.Free;
end;
← →
Val (2003-04-10 19:45) [9]>Bel © (10.04.03 18:57)
я для этого, собственно и создаю новый процесс, чтобы чужих не трогать, иначе закрывается все.
>panov © (10.04.03 19:17)
нет, все без изменений :(
если у вас закрывает при .ConnectKind := ckNewInstance;, скажите какая ОС и какой офис, попробую на аналогичных.
У меня все 2000.
← →
panov (2003-04-10 19:55) [10]У меня Excel97...
← →
Val (2003-04-10 20:03) [11]нет слов просто, что за фигня :(
← →
panov (2003-04-10 20:10) [12]Добавлю, что ОС - WinNT 4.0 WS
← →
panov (2003-04-10 20:13) [13]Также в свойствах TExcelApplication:
EA.AutoConnect := False;
EA.AutoQuit := False;
← →
NA (2003-04-10 23:59) [14]На Дельфи 3 Про и Ехеле97 (тогда еще не было, правда, готовых компонент) имел шикарный глюк: при закрытии созданного документа (неважно, при активной или уже закрытой программе) получал какую-то ругню от Ехеля. С документом при этом все всегда нормально.
Разрешилось все практически случайно: обнаружил, что при двукратном подряд нажатии Ctrl-F9 исчезла пара висевших варнингов. Проверил несколько раз, и - о, чудо! - откомпилированные таким образом программы НИКОГДА НЕ ВЫЗЫВАЛИ такой ошибки при идентичном исходном коде!!!
Что это было - до сих пор не знаю. Хотя, наверное, хотелось бы узнать ;)
← →
Val (2003-04-11 11:18) [15]Всем спасибо, вопрос снят.
Дело было в полном вечернем одурении и затерявшемся лишнем Disconnect"e. :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c