Форум: "Потрепаться";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];
ВнизТеоретически всё правильно, а вот на практике ... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c