Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

поблемы с подключение к Word [D6, XP]


russo@78 ©   (2007-08-08 13:25:00) 

Есть задача - подключиться к запущенному Word или открыть новый документ по шаблону. Все просто, но ниже приведенный код полностью не работает, а именно - новый документ создается, а подключаться к существующему и отображать его не хочет.
Кроме того, при обращении к олеобъекту W, не выводится перечень всех его свойств и методов после точки. Что не так, подмогните, вроде все точно по букварях?

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ComObj, OleServer, Word2000;
type
 TForm1 = class(TForm)
   Button: TButton;
   procedure ButtonClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.ButtonClick(Sender: TObject);
var
  W: OleVariant;
begin
  try
   W:= GetActiveOleObject('Word.Application');
   W.Visible:= True;
  except
   W:= CreateOleObject('Word.Application');
   W.Visible:= True;
   W.Documents.Add('D:\TMP\KG.dot');
  end;
end;
end.


Все


Russo@78   (2007-08-08 14:27:00) [1]

> удут
Пробовал и так и через TWordApplication и TWordDocument. Второй вариант (через встроенные) работает, а через OLE нет.

> AleksandrR
А какая разница? Если dot, то новый документ создается на его основе, а если doc, то на основании doc. Проверено на этом же коде.

Как это вляет на то, что я не могу доступиться к свойствам объекта W и, как мне понимается, поэтому не могу свойство Visible установить в True?


AleksandrR   (2007-08-08 13:51:00) [2]

Проверь расширение у тебя dot, а нужноо doc
А вот твой код
var
 W: OleVariant;
begin
   W:= CreateOleObject('Word.Application');
  W.Visible:= True;
  W.Documents.Add('D:\123.doc');
 end;


удут   (2007-08-08 13:42:00) [3]

А зачем тебе  GetActiveOleObject('Word.Application'); если ты уже имееш модуль  Word2000; В нем есть компоненты TWordApplication и TWordDocument вот их и используй.


Наверх

Титульная страница Поиск, карта сайта Написать письмо