![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не возникает ошибка при удалении открытого документа (WORD) [D7, XP]
Раиса © (2008-07-14 12:40:00)Пишу так:
try
DeleteFile(S);
except
Application.MessageBox('Ошибка! Вероятно, открыт документ с именем разрешения!','Сообщение',mb_Ok+mb_ICONINFORMATION);
Exit;
end;
и мечтаю, что вывалится ошибка,если документ (вордовый) с таким именем уже открыт.
Но в try .... Except программа не заходит.
Вопрос: почему? и что нужно сделать, чтобы проверить, открыт или нет документ с таким именем?
Игорь Шевченко (2008-07-15 19:52:00) [1]
> К моменту моего возвращения из командировки (через неделю)
> хотелось бы увидеть ответы на вопросы, а не упражнения в
> остроумии (мягко говоря).
> 1. Как проверить, что файл с определенным именем открыт?
>
> 2. Появляется вопрос о сохранении в Документе 2. Как от
> него избавится? (В Excel у меня получается закрывать без
> вопроса).
http://ln.com.ua/~openxs/articles/smart-questions-ru.html
Virgo_Style (2008-07-15 18:14:00) [2]Раиса © (14.07.08 16:03) [47]
Raisa (15.07.08 0:09) [49]
хотелось бы верить, что это разные Раисы, иначе совсем безрадостно
brother (2008-07-15 06:40:00) [3]К моменту моего возвращения из командировки (через неделю)
к этому времени и ветки то уже не будет, и правильно... на форуме Вам никто ничего не должен (читаем правила)...
Плохиш (2008-07-15 00:45:00) [4]
> Raisa (15.07.08 00:09) [49]
> Раз Вы такой знаток немецкого, пишите, пожалуйста, с артиклями
Вот кайзеру Вилхелму второму предъява, так предъява :-)
> К моменту моего возвращения из командировки (через неделю)
> хотелось бы увидеть ответы на вопросы
Спасибо, мамочка, но мы как-нибуть сами разберёмся, чем заняться...
Raisa (2008-07-15 00:09:00) [5]oldman © (14.07.08 16:15) [48]
Открываем программно, а пользователь сам закрывает документ или нет (после того, как, например, распечатает его или насмотрится вдоволь).
Johnmen © (14.07.08 15:46) [46]
Kinder, Kuche, Kirche.Я бы ещё добавил Kleider.
Раз Вы такой знаток немецкого, пишите, пожалуйста, с артиклями, чтобы не выглядело так убого. И умляюты не забывайте, чтобы слова выглядели прилично.
К моменту моего возвращения из командировки (через неделю) хотелось бы увидеть ответы на вопросы, а не упражнения в остроумии (мягко говоря).
1. Как проверить, что файл с определенным именем открыт?
2. Появляется вопрос о сохранении в Документе 2. Как от него избавится? (В Excel у меня получается закрывать без вопроса).
oldman (2008-07-14 16:15:00) [6]
> Раиса © (14.07.08 16:03) [47]
> Johnmen © (14.07.08 15:46) [46]
> Конечно открыт -> Создали программно документ с именем 1.
> doc и оставили открытым
>
> А могли этого не делать
Вот и не делайте.
А открыли - закройте. Программно.
Раиса (2008-07-14 16:03:00) [7]Johnmen © (14.07.08 15:46) [46]
Конечно открыт -> Создали программно документ с именем 1.doc и оставили открытым
А могли этого не делать (не создавать и не открывать). Тогда программа нормально рботает.
После использования GetActiveOleObject не появляется WinWord в диспетчере.
try
MSWord.ActiveDocument.SaveAs(S);
MSWord.Visible:=True;
MsWord:=unAssigned;
except
Application.MessageBox('Ошибка','---',mb_Ok+mb_ICONINFORMATION);
MSWord.Quit;
Exit;
end;
Появляется вопрос о сохранении в Документе 2. Как от него избавится?
Johnmen (2008-07-14 15:46:00) [8]
> хотелось не доходить до CreateOleObject, а проверить открыт
> или нет документ до CreateOleObject.
Конечно открыт -
> Создали программно документ с именем 1.doc и оставили открытым
ЗЫ
Как говаривал И.Шевченко, Kinder, Kuche, Kirche.
Я бы ещё добавил Kleider. Чтоб не так уныло...
:)
Плохиш (2008-07-14 15:45:00) [9]
> Как выход, хотелось не доходить до CreateOleObject, а проверить
> открыт или нет документ до CreateOleObject..
По логике надо использовать GetActiveOleObject
> Что непонятного-то?
О, так это у нас проблема оказывается...
Раиса (2008-07-14 15:28:00) [10]Palladin © (14.07.08 15:16) [42]
MsWord:=unAssigned; - это есть. Может, не в нужном месте, но после MSWord.Visible:=True;
1. Создали программно документ с именем 1.doc и оставили открытым
2. Второй раз создаем документ с этим же именем с использованием CreateOleObject. Вываливается ошибка на SaveAs, обрабатываем ошибку, но при этом WinWord появится в Диспетчере задач.
Как выход, хотелось не доходить до CreateOleObject, а проверить открыт или нет документ до CreateOleObject..
Что непонятного-то?
Kolan (2008-07-14 15:20:00) [11]Удалено модератором
Palladin (2008-07-14 15:16:00) [12]
> Раиса © (14.07.08 15:04) [41]
[19] второй абзац не помогает... просветлятся не хотим... доктор сказал в морг значит в морг...
хотя последняя попытка
это что то, то что нужно сохранить это что? тоже документ? подозреваю что да. откуда этот документ берется? формируется программно? предположим формируется программно. далее стоит задача его сохранить. ну так и делаем попытку его сохранения!, проверяя результат этого действа и выясняем что же случилось. это сложно? это трудно?
CreateOleObject никакого отношенияк сохранению и более того к наличию присутствия какого либо файла либо его занятости не имеети провести его вызов помешать может только религиозные убеждения. какое отношение к существованию и занясти файла имеет вызов функции Quit? никакого!WinWord остается в памяти потому как небыл обнулен интерфейс.wdApp:=Unassigned;о чем и сказал Игорь, но в чукчу-писателя играть интересней...
Раиса (2008-07-14 15:04:00) [13]Palladin © (14.07.08 14:58) [40]
см.Раиса © (14.07.08 14:31) [30]
Но для того, чтобы дойти до SaveAs, нужно сделать
CreateOleObject('Word.Application');
и при этом WinWord появится в Диспетчере задач. Quit почему-то не помогает для завершения процесса.
Palladin (2008-07-14 14:58:00) [14]
> Раиса © (14.07.08 14:57) [39]
"ну вот, а то мама мама..."
вот при попытке записи чего то с этим именем и нужно делать анализ результата этой попытки, и не нужно ничего удалять
Раиса (2008-07-14 14:57:00) [15]Задача:все-таки записать, что-то с тем же именем. Но вордовый файл может быть открыт или нет (программно или вручную).
Palladin (2008-07-14 14:53:00) [16]
> Раиса © (14.07.08 14:44) [33]
либо это не с самого начала, либо все таки читать [19] второй абзац до полного просветления
задача так и не озвучена, что нужно от файла, просто его удалить или всетаки записать, что то с тем же именем
Kolan (2008-07-14 14:50:00) [17]> он может быть и не открыт, но при этом и удалить его не
> получится
Пожалей автора :).
Поросенок Винни-Пух (2008-07-14 14:50:00) [18]Если документ есть, но не открыт, то после вопроса удалить его или нет.
неправильно.
Если есть и не открыт, то снова проверить не открыт ли он сразу после первой проверки на неоткрытость.
Kolan (2008-07-14 14:47:00) [19]> [33] Раиса © (14.07.08 14:44)
Это похоже на задание, а не на вопрос. Что из этого непонятно?
Поросенок Винни-Пух (2008-07-14 14:47:00) [20]он может быть и не открыт, но при этом и удалить его не получится