Главная страница
    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.032 c
3-1096088260
Kair()
2004-09-25 08:57
2004.10.24


3-1095993660
Oleg2
2004-09-24 06:41
2004.10.24
Как сделать, чтобы в гриде редактировать


4-1095487425
kukuikar
2004-09-18 10:03
2004.10.24
ExtractIcon


8-1090839293
goliath
2004-07-26 14:54
2004.10.24
TDrawing


1-1097081364
Bes
2004-10-06 20:49
2004.10.24
проблема с процедуров в DLL





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