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

Вниз

ошибка при вызове Word а   Найти похожие ветки 

 
Picco   (2003-04-15 11:09) [0]

Поможите чем можите
Проблемма в следующем:
вызываю Word
MsWord:=CreateOleObject("Word.Application");
на некоторых машинах все нормально, на некоторых ошибка
"Вызов был отклонен", при этом в списке запущенных задач обнаруживаю три экземпляра запущенных Word
При кратком изучении ситуации в силу поверхностных знаний ActiveX технологий нахожу на в реестре машинах с ошибкой три
зарегистрированных объекта Word:
Word.Application
Word.Application.8
Word.Application.10
Все попытки с инициализацией каждого по имени CreateOleObject("Word.Application.8..10");
из вышеперечисленных
ситуация та же "Вызов был отклонен" и запуск трёх Word"ов сразу.
Может кто знает как по другому его вызывать или обрабатывать сию ситуацию.
Спасибо за внимание


 
Shirson   (2003-04-15 12:23) [1]

Нет, проблема не в трёх зарегистрированных объектах, у меня их тоже три (только не 10, а 9) и всё нормально работает.
Может в коде у тебя что не так?


 
Rol   (2003-04-15 12:38) [2]

Код в студию!


 
Picco   (2003-04-15 13:09) [3]

На входе программы текстовый файл с подстановочными полями
типа <ДИРЕКТОР>="Иванов И.И" и второй параметр шаблон Word на основе документа которого она будет искать и заменять поля.
procedure TForm1.FormCreate(Sender: TObject);
var
F: TextFile;
i,j: integer;
S,S1,s2:string;
Template,FileInput:string;
MsWord,myRange:OleVariant;
begin
try
MsWord:=CreateOleObject("Word.Application");
FileInput:=LowerCase(ParamStr(1));
Template:=LowerCase(ParamStr(2));
MsWord.Documents.Add(Template,EmptyParam);
i:=0;
AssignFile(F,FileInput);
Reset(F);
if not RxMemoryData1.Active then RxMemoryData1.Active:=true;
while not eof(f) do
begin
ReadLn(F,S);
S:=OemToAnsiStr(S);
S1:=ExtractWord(1,S,["="]);
S2:=ExtractWord(2,S,["="]);
RxMemoryData1.Append;
RxMemoryData1.FieldByName("names").AsString:=S1;
RxMemoryData1.FieldByName("values").AsString:=S2;
RxMemoryData1.Post;
end;
myRange:=MsWord.ActiveDocument.Content;
with RxMemoryData1 do
begin
First;
While not eof do
begin
myRange.Find.Execute(RxMemoryData1.FieldByName ("names").AsString, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,Trim(RxMemoryData1.FieldByName("values").AsString),wdReplaceAll);
Next;
end;
end;
CloseFile(F);
MsWord.Visible:=True;
Application.Terminate;
except
begin
ShowMessage("Неудачная попытка печати");
Application.Terminate;
end;
end;
end;


 
V-A-V   (2003-04-15 15:03) [4]

Да кстати у меня такая же бяка на некоторых машинах случается, и тоже никак поймать не могу отчего...
Хотелось бы послушать мнения народа по этому поводу.


 
Shirson   (2003-04-15 15:33) [5]

И на какой строке вываливается ошибка?

P.S. Я у себя ворд объявляю не как OleVariant, а как просто Variant.


 
Picco   (2003-04-15 16:20) [6]

Пробовал я и с variant то же самое
а на строке CreateOleObject("Word.Application") конечно вываливается,странно но с Excel подобных бяк не встречал.




 
Ozone   (2003-04-16 09:39) [7]

Дык, Word после работы закрывать надо - MsWord.Quit;

< MsWord.Documents.Add(Template,EmptyParam); >

По-моему, лучше использовать для этого variant"скую переменную.
Что-то типа WordDocument:=MsWord.Documents.Add;


 
Shirson   (2003-04-16 10:29) [8]

>Ozone
Если у Picco при первом обращении вываливается ошибка, то о каком закрытии ворда идёт речь?

Кстати ворд закрывается командой MsWord.Application.Quit(false,0)
И команда
MsWord.Documents.Add тоже воплне прекрасно работает.



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

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

Наверх




Память: 0.46 MB
Время: 0.008 c
7-91560
DerMeister
2003-03-09 20:42
2003.04.28
WM_QUERYENDSESSION и WM_ENDSESSION


3-91165
bSava
2003-04-09 13:17
2003.04.28
Поле типа


3-91190
denary
2003-04-10 02:18
2003.04.28
как программно создать пустой файл Excel?


1-91272
Dps
2003-04-14 19:13
2003.04.28
Как временно отключить обработку исключений?


4-91593
ScaliaR
2003-02-17 03:27
2003.04.28
как получить hwnd edit a по его содержимому.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский