Главная страница
    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.239 c
1-42719
champion
2002-01-30 12:02
2002.02.14
Узнать ответ


14-42868
Voron
2001-12-26 11:33
2002.02.14
К создателям сайта: что с поиском твориться?


14-42851
Knight
2001-12-22 11:59
2002.02.14
Решил подарочек сделать маме... Вопросик возник!


1-42724
Serg001
2002-01-30 16:16
2002.02.14
Народ, помогитееееееееееееееееее!


3-42648
Eraser
2002-01-17 11:21
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский