Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];

Вниз

Взаимодействие ворд+делфи   Найти похожие ветки 

 
Oleg_teacher   (2011-08-17 10:00) [0]

есть программа взаимодейсвия

в процедуре исполняем код:

if CreateWord and AddDoc then
begin
VisibleWord(True);
....
end
else ShowMessage("Невозможно создать документ")


Сами функции:
Function CreateWord:boolean;
begin
CreateWord:=true;
try
MSWord:=CreateOleObject("Word.Application");
except
CreateWord:=false;
end;
End;
Function VisibleWord (visible:boolean):boolean;
begin
VisibleWord:=true;
try
MSWord.visible:= visible;
except
VisibleWord:=false;
end;
End;
Function AddDoc:boolean;
Var Doc_:variant;
begin
AddDoc:=true;
try
Doc_:=MSWord.Documents;
Doc_.Add;
except
try
MSWord.close(0);
except
end;
AddDoc:=false;
end;
End;


На ОС. win7, Офис: 2007 в некоторых комппах появляется ошибка:
срабатывает ошибка и появляется  окно "Невозможно создать документ". Причина мне кажется в  MSWord:=CreateOleObject("Word.Application");
Что можете сказать по етому поводу? Может ли быть как то связано с политикой безопасности винды, или какие то другие настройки в Офисе? (в хп и 2003 работает безотказно).


 
oldman ©   (2011-08-17 10:13) [1]


> if CreateWord and AddDoc then
> begin
> VisibleWord(True);
> ....
> end
> else ShowMessage("Невозможно создать документ")


замени на

if CreateWord then
 if AddDoc then begin
   ... \\ твои действия при успехе
   end
 else ShowMessage("Невозможно ADDDOC")
else ShowMessage("Невозможно CREATEWORD")

хоть функцию вычислишь

ЗЫ: в AddDoc ты с try except не перемудрил?


 
Oleg_teacher   (2011-08-17 10:18) [2]


> else ShowMessage("Невозможно CREATEWORD")

тут.

> ЗЫ: в AddDoc ты с try except не перемудрил?

Ворд создан и добавлен док.... значит все ок. Если нет, тогда закрываю сам ворд. Вроде нет. Если что поправите. Может и не надо ето.


 
oldman ©   (2011-08-17 10:24) [3]


> Function CreateWord:boolean;
> begin
> CreateWord:=true;
> try
> MSWord:=CreateOleObject("Word.Application");
> except
> CreateWord:=false;
> end;


Ну так значит дело не в MSWord:=CreateOleObject("Word.Application");,
а в CreateWord:=true;
:)


> try
> Doc_:=MSWord.Documents;
> Doc_.Add;
> except
> try
> MSWord.close(0);
> except
> end;
> AddDoc:=false;
> end;


а нельзя

try
Doc_:=MSWord.Documents;
Doc_.Add;
except
MSWord.close(0);
AddDoc:=false;
end;

???


 
Oleg_teacher   (2011-08-17 10:29) [4]


> MSWord.close(0);


можно!!! но вдруг не закроется ;) и так вон ошибки вылазят :))


 
oldman ©   (2011-08-17 10:55) [5]

Я фигню советовал!

Башка сегодня не варит. Забыл, как работает try except


 
OW ©   (2011-08-18 13:52) [6]

if Pointer(IDispatch(MSWord)) <> nil then // аналогично можно документы проверить, не надо ли их Close()
 begin
   try
     MSWord.Quit;
   finally
     MSWord := UnAssigned;
   end;
 end;


 
OW ©   (2011-08-18 14:23) [7]

procedure CreateWordA(var WA: Variant);
begin
 WA := CreateOleObject("Word.Application");
 WA.DisplayAlerts := False;
 WA.Options.CheckSpellingAsYouType := False;
 WA.Options.CheckGrammarAsYouType := False;
 WA.Options.CheckGrammarWithSpelling := False;
 WA.Options.InlineConversion := False;
 WA.Options.AutoFormatApplyHeadings := False;
 WA.Options.AutoFormatApplyBulletedLists := False;
 WA.Options.AutoFormatApplyOtherParas := False;
 WA.Options.AutoFormatPreserveStyles := False;
 WA.Options.AutoFormatAsYouTypeApplyHeadings := False;
 WA.Options.AutoFormatAsYouTypeApplyTables := False;
 WA.Options.AutoFormatPlainTextWordMail := False;
// еще можно много чего задисаблить, быстрее будет работать. Читать WordXP(2000).pas файл, что именно
end;



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

Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
2-1312981050
Antoxa
2011-08-10 16:57
2011.12.04
Проблема переноса проэкта с Д7 на Д2010


15-1313181004
Юрий
2011-08-13 00:30
2011.12.04
С днем рождения ! 13 августа 2011 суббота


2-1313146108
Nikki
2011-08-12 14:48
2011.12.04
Работа с TMemo


3-1268214255
Spot
2010-03-10 12:44
2011.12.04
Резервирование БД mysql


15-1312952292
OW
2011-08-10 08:58
2011.12.04
Дизайнеры прикалываются %)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский