Вниз
Скачать: CL | DM;

TWordApplication выдает ошибку - "вызов был отклонен"   Найти похожие ветки 

 
ford ©   (2009-07-27 11:46) [0]

Здравствуйте уважаемые!
Использую ворд для проверки орфографии, для этого на форме разместил два компонента TWordApplication и TWordDocument

WordApplication.ConnectKind:=ckNewInstance;

вот сама процедура
...
WordApp.Connect;
WordDoc.ConnectTo(WordApp.Documents.Add(EmptyParam, EmptyParam,EmptyParam,EmptyParam));

i:=0;
repeat
      WordDoc.Range.Delete(EmptyParam,EmptyParam);
      WordDoc.Range.Set_Text(lst[i]);
      colSpellErrors := WordDoc.SpellingErrors;
      if colSpellErrors.Count <> 0 then
       Begin
        Inc(i);
       end
      Else
        Lst.Delete(i);
until i>=Lst.Count;
WordDoc.Disconnect;


где lst:TStringList; и содержит список слов на проверку

ошибка вылетает если во время цикла проверки был запущен word набран любой текст и закрыт ворд. Или перед запуском программы также открыть ворд, а во время выполнения цикла его закрыть.

Подскажите, как сделать чтобы моя программа не зависела, в данном случае, от действий пользователя с Word?


 
Anatoly Podgoretsky ©   (2009-07-27 12:14) [1]

> ford  (27.07.2009 11:46:00)  [0]

Не подключайся к текущему экземпляру Ворд, имей свой экземпляр только для себя.
Подробности в справке.


 
ford ©   (2009-07-27 12:18) [2]

Сдела по другому :)
нашел в интернете пример на VBasic
переделал джуть-джуть и работает :)

Var WordApp:Variant;
...
WordApp:=CreateOleObject("word.Application");
i:=0;
repeat
     if not WordApp.CheckSpelling(Lst[i]) then
      Begin
       Inc(i);
      end
     Else
       Lst.Delete(i);
until i>=Lst.Count;
WordApp.Quit(False);


 
ford ©   (2009-07-27 12:20) [3]


> Anatoly Podgoretsky ©   (27.07.09 12:14) [1]

яж вроде и использовал новый экземпляр
когда поставил
WordApplication.ConnectKind:=ckNewInstance;
во всяком случае я так понял прочитав в хелпе...


 
Anatoly Podgoretsky ©   (2009-07-27 13:09) [4]

> ford  (27.07.2009 12:20:03)  [3]

Правильно, именно это свойство, но видимо надо еще и WordApp.Connect не использовать. Я работаю с Экселем, без аналогичной строчки получается полная изоляция ExcelAllpication - не страшны никакие ошибки, они просто не влияют на другие приложения.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
15-1249072202
Юрий
2009-08-01 00:30
2009.10.04
С днем рождения ! 1 августа 2009 суббота


1-1218649384
Tack
2008-08-13 21:43
2009.10.04
Можно ли переименовать класс окна?


2-1248680807
ford
2009-07-27 11:46
2009.10.04
TWordApplication выдает ошибку - "вызов был отклонен"


2-1248115102
thing
2009-07-20 22:38
2009.10.04
3D игра - переход от управления с клавы на мышь


15-1249148976
anton773
2009-08-01 21:49
2009.10.04
где можно прочитать про CDO_TLB и ADODB_TLB




   Наверх