Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.036 c
3-1096274299
VKSam
2004-09-27 12:38
2004.10.24
InterBase


1-1096192293
Koala
2004-09-26 13:51
2004.10.24
Округление функция Round


1-1097579697
DesWind
2004-10-12 15:14
2004.10.24
Аппроксимация


14-1096887385
QuasiLamo
2004-10-04 14:56
2004.10.24
монитор ЖК 17"


1-1097223413
Delphi5.01
2004-10-08 12:16
2004.10.24
Incompatible types: TComponentClass and Class reference





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