Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
ВнизКак убить приожение? Найти похожие ветки
← →
kaktus (2004-12-03 14:58) [0]Доброго всем суток времени!
У меня такая проблема:
при обработке события OnClose я выполняю следующие действия:
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
var
i : Integer;
FalseParam : OleVariant;
begin
FalseParam := False;
for i := 0 to 10 do
delTemp; //Очистка временной таблицы базы данных
WordApp.Quit(FalseParam);//Закрываю коннэкт с Word-ом
Application.Free; //Пробывал Destroy
end;
После всего этого процесс все еще висит в оперативке, и при последующем запуске ругается не красивыми словами мастдая типа: Допущена ошибка .... и т. д.
← →
ssk © (2004-12-03 15:04) [1]1. Application.Terminate
2. Halt
← →
Verg © (2004-12-03 15:04) [2]
> Application.Free; //Пробывал Destroy
Это-то зачем?
← →
kaktus (2004-12-03 15:07) [3]>Это-то зачем?
А затем что по клоуз не фига не срабатывает!
← →
Verg © (2004-12-03 15:13) [4]
> [3] kaktus (03.12.04 15:07)
Так может вопрос все же "почему-то по close не срабатывает", а не subj ?
А то, ведь я скажу - "нажми кнопку Power" и твой вопрос будет снят, не так ли?
← →
Sergey_Masloff (2004-12-03 15:29) [5]Вместо
WordApp.Quit()
сделай
WordApp := Unassigned;
Application.Free() не нужно
← →
Sergey_Masloff (2004-12-03 15:32) [6]Тут имхо дело в следующем.
Имеем WordApp связаный с COM-объектом Word-а. Даем ему команду себя закрыть (при этом ссылка интерфейсная повисает). Затем закрываем приложение. Оно честно хочет сделать варианту АнЭссайн что приводит к обращению к интерфейсу реализация которого выгружена уже. С непредсказуемыми последствиями.
Это только предположение но думаю похоже на истину.
← →
kaktus (2004-12-03 15:37) [7]>WordApp := Unassigned;
не работает!
[Error] main.pas(697): Incompatible types: "TWordApplication" and "Variant"
← →
Sergey_Masloff (2004-12-03 15:44) [8]kaktus (03.12.04 15:37) [7]
Ну покажи как ты создаешь свой WordApp - ты ж объявление не привел. С вариантом это если работаешь через позднее связывание (late binding) если через vtable непосредственно то интерфейс по другому высвободить надо. Вобщем, показывай все - как объявил как создал.
← →
kaktus (2004-12-03 16:09) [9]WordApp.Connect;
WordDoc.ConnectTo(WordApp.Documents.Add(EmptyParam, EmptyParam));
← →
VMcL © (2004-12-03 17:25) [10]>>kaktus (03.12.04 16:09) [9]
Это не создание и не объявление, а просто какие-то две строки кода.
← →
kaktus (2004-12-03 17:45) [11]Есть такой хороший не визуальный элемент управления как WordApplication и WordDocument - вот ими я и пользуюсь! Какое создание, какое обьявление????? Это не простые строки кода - а волшебные - я скажу так: с вордякой у меня проблем нет - закрывается как милинький! А вот форма - главная - не хочит киллица - по сути - сама форма хайдится, но не уничтожается.
← →
VMcL © (2004-12-04 13:54) [12]>>kaktus (03.12.04 17:45) [11]
WordApplication.Disconnect сделали по окончании работы с Word"ом?
← →
kaktus (2004-12-06 12:10) [13]>WordApplication.Disconnect сделали по окончании работы с >Word"ом?
Когда я такое делал у меня выскакивал меседж с предложением сохранить документ, а это мне надо меньше всего-понимаете я работаю с вордовским словарем для проверки синтаксиса вводимого текста в RichEdit1. Для этого я проделал следующее:
var
FalseParam:OleVariant;
begin
FalseParam := False;
...
WordApp.Quit(FalseParam);
end;
Меседж не появляется - ну всеравно мне не нравиться, что после программного завершения работы программы - ее процесс все еще висит в диспечере задач.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c