Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Теоретически всё правильно, а вот на практике ...   Найти похожие ветки 

 
1008 ©   (2004-10-04 14:13) [0]

Вставляю данные в Word документ следующим образом:

WA:=TWordApplication.Create(ZvitForm);
WD:=TWordDocument.Create(ZvitForm);
fname:=ExtractFilePath(Application.ExeName)+"shablon.dot";
WA.Documents.Open(fname,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam,
                 EmptyParam);
WD.ConnectTo(WA.ActiveDocument);
replace:=1;
for i:=1 to 10 do begin
oldStr:="@"+inttostr(i);
case i of
 1: newStr:=usurname;
 2: newStr:=uname;
 3: newStr:=upatronimic;
 ...
end;
WD.Range.Find.Execute(oldStr,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam,
                      newStr,
                      replace,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam,
                      EmptyParam);

end;//for i:=1 to 11 do begin
WD.Close;
WA.Quit;

WA.Free;
WD.Free;


В выделенном фрагменте возникает ошибка, но на двух из четырёх машин, на которых я проверял работу программы. Формально всё делал по иснтрукции и всё делал вроде как правильно, но реально возникает ошибка OLE Error C0000005.
Работоспособность на WinXP   + Office2003    - нормально
                    Win98SE + Office2000Pro - нормально
ещё на двух машинах с Win98SE + Office2000 - вылетает указанная ошибка.
Кто-нибудь знает с чем это может быть связано?


 
KSergey ©   (2004-10-04 14:19) [1]

Вероятнее всего - различия в версиях офиса. Вообще в этом смысле надежнее использовать позднее связывание.


 
1008 ©   (2004-10-04 14:44) [2]

KSergey ©  (04.10.04 14:19) [1]

Есть, например, моя машина с Win 4.10.2222 A и Word 9.0.2812
и соседняя с Win 4.10.2222 A и Word 9.0.2812 (из отличий от моей системы нашёл то, что папка, которая у меня именуется: "Мои документы" на соседней машине именуется "My Documents").

А что такое позднее связывание и как его осуществить?


 
clickmaker ©   (2004-10-04 14:45) [3]


> [1] KSergey ©   (04.10.04 14:19)
> Вероятнее всего - различия в версиях офиса. Вообще в этом
> смысле надежнее использовать позднее связывание.

Чем надежнее? Если различия в количестве или типах параметров, то оно не спасет. Тогда уж надо версию проверять


 
1008 ©   (2004-10-04 14:49) [4]

Кстати такие вещи как определение версии:

wordver:=WA.Version;
tmps:="";
for i:=1 to length(wordver) do if wordver[i]="." then break else tmps:=tmps+wordver[i];
if strtoint(tmps)<9 then begin
messagebox(ZvitForm.Handle,"Нужна версия не ниже 2000","Error!!!",mb_ok);
WA.Free;
WD.Free;
close;
end;

и некоторые проверки я опустил задавая вопрос.


 
YurikGL ©   (2004-10-04 16:21) [5]

app:Variant;

try
 app := CreateOleObject("Word.Application");
 App.Visible := True;

работаем с вордом

finally
 App:=Unassigned;
end;


 
1008 ©   (2004-10-04 16:34) [6]

YurikGL ©  (04.10.04 16:21) [5]

Спасибо. Попробую.



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

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.036 c
1-1097055459
Hereticsoul
2004-10-06 13:37
2004.10.24
Вообще ничего не понимаю что происходит со значением переменной.


3-1096297927
Павел
2004-09-27 19:12
2004.10.24
D5 + FireBird


14-1096969651
karat
2004-10-05 13:47
2004.10.24
Здесь есть кто с Калининграда?


6-1092270292
bles
2004-08-12 04:24
2004.10.24
утилита для пингования


9-1088003860
3d_Vorpos
2004-06-23 19:17
2004.10.24
Проекция на плоскость эксрана точки в пространстве.





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