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

Вниз

Connect с WORD!!   Найти похожие ветки 

 
VCL   (2002-01-26 20:10) [0]

Я пытаюсь передать данные в Word. У меня на машине все нормально, у мя W98SE,
Office2000, все прекрасно работает! Hо вот на W95 и Office97 при попытке коннекта
с Word выдается ошибка "Ошибка при выполнении приложения-сервера". Все, даже кода
ошибки и класса я не знаю (у меня не было возможности получить столь необходимую
информацию, т.к. это была не моя тестовая машина без Delphi). Может быть кто-то
уже натыкался на это. Подскажите, пож-ста, в чем дело.

Делаю на Delphi, вот код:

type
TForm1 = class(TForm)
[skipped]
public
WrdApp:Variant;
end;

implementation

{$R *.DFM}

function GetOrCreateObject (const ClassName: string): IDispatch;
var
ClassID: TGUID;
Unknown: IUnknown;
begin
ClassID := ProgIDToClassID(ClassName);
if Succeeded (GetActiveObject(ClassID, nil, Unknown)) then
OleCheck (Unknown.QueryInterface (IDispatch, Result))
else
Result := CreateOleObject (ClassName);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
WrdApp:=GetOrCreateObject("Word.Application"); WrdApp.Documents.Add(extra
ctfilepath(application.exename)+"Name",EmptyParam);
WrdApp.Visible := True;
end;

Заранее спасибо!


 
VCL   (2002-01-28 18:17) [1]

Что, никто не знает???


 
Artog   (2002-01-28 18:48) [2]

Почему возникает ошибка сказать могу, но как ее решить на вскидку не скажу. Каждый COM объект, а Word это COM объект, имеет свой TGUID. У Word2000 и Word97 они разные. У Word97
TGUID = "{00020905-0000-0000-C000-000000000046}". Этот самый TGUID можно посмотреть, если запустить в реестре на поиск строку
"Word.Application".
Хотя думаю, если присвоить
ClassID := "{00020905-0000-0000-C000-000000000046}" и далее по тексту твоей проги, то будет работать с Word97. Но для Word2000 надо будет делать другое присваивание. Так что надо будет определять какой Word установлен на машине.


 
Alex2002   (2002-01-31 12:50) [3]

Я пользуюсь компонентами Servers, если их удалить из делфи, а затем импортировать снова через Import Type Library, то можно посмотреть через хинты, какие параметры есть у процедур.
Проще некуда определить и версию Word.

var vers:widestring;


begin
WordApplication1.ConnectKind:=ckNewInstance;//ckAttachToInterface;
WordApplication1.Connect;
vers:=WordApplication1.Version;
if vers="9.0" then
WordApplication1.Documents.Open(Shablon1,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam)
else
WordApplication1.Documents.Openold(Shablon1,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordDocument1.ConnectKind:=ckNewInstance;//ckAttachToInterface;
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);

WordApplication1.SaveAs(FileName1);
WordDocument1.Close;
WordApplication1.Disconnect;

end.

Если интересно то напиши,есть файлик с подробным описанием, как переинсталить серверные компоненты.

Считается, что такой способ работы быстрее и лучше.



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

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

Наверх





Память: 0.45 MB
Время: 0.004 c
3-42674
KOSTAY
2002-01-21 17:43
2002.02.14
Что это за файлы *.px, *.mb, *.xg_, *.yg_, *.mbl?


1-42760
UserL
2002-01-31 07:16
2002.02.14
Как ограничить размер формы?


1-42711
Анатолий
2002-02-01 07:08
2002.02.14
разрешение экрана


3-42673
Delirium
2002-01-18 20:17
2002.02.14
MSMQ и Delphi


3-42680
Dyacha
2002-01-22 10:48
2002.02.14
Гетерогенный запрос





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