CreateOleObject('Word.Application');

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Закрыто
cepreu
новенький
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

CreateOleObject('Word.Application');

Сообщение cepreu »

Привет всем!
Такая проблема
Код:

Код: Выделить всё

uses
   activex, comobj
  { add your units here };

Var
  W : Variant;
  V : String;

begin
  W:=CreateOleObject('Word.Application');
  W.Application.Visible := True;
  Writeln('Installed version of MS Word is : ',V);
end.

Компиляция нормално но на строге
Но на запуске выдает: Project raised exception class 'RunError103'

Word в памяти появляется но какие нибудь команды ему слать не получается??? :(

Заранее спасибо!
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Где присваивается значение V? На данный момент через автоматизацию не работают свойства, работают методы.
cepreu
новенький
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

Сообщение cepreu »

Немного изменненный текс
место
W.Application.Visible := True;
в примере было
v := w.application.version;
или подобная строка;

но и сней таже беда
cepreu
новенький
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

Сообщение cepreu »

а поповоду методов, пример кода можно гдето просмотреть??
Спасибо
SAK
постоялец
Сообщения: 158
Зарегистрирован: 17.02.2006 23:45:14
Откуда: Тим
Контактная информация:

Сообщение SAK »

cepreu писал(а):Но на запуске выдает: Project raised exception class 'RunError103'

Это где? Lazarus или Delphi?
Я тут заглянул в comobj.pp на реализацию CreateOleObject в Lazarus 0.9.22:

Код: Выделить всё

   function CreateOleObject(const ClassName : string) : IDispatch;
     begin
       {!!!!!!!}
       runerror(211);
     end;

Если это Delphi,то примерно так:

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  W, S: Variant;
begin
  W:=CreateOleObject('Word.Application');
  W.Documents.Add;
  W.Visible:=True;
  S:=W.Selection;
  S.InsertAfter('Учиться, учиться и учиться!');
end;

А в Лазаре этот пример даже не компилится.
Подробное описание всех классов можно найти в справке по Visual Basic из комплекта MS Office. Для Office XP файл WDMAIN10.CHM.
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

В последних версиях FPC кое-что работает. Не знаю, какая уж версия идет с Лазарем…

PS. Тема не имеет отношения к Lazarus — переношу в FPC.
SAK
постоялец
Сообщения: 158
Зарегистрирован: 17.02.2006 23:45:14
Откуда: Тим
Контактная информация:

Сообщение SAK »

С упомятой версией Lazarus используется FPC 2.0.4. Даже если в более поздних начали реализовывать возможность работы с OLE, то я не представляю как это использовать пока не поддерживаются свойства. А хотелось бы.
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

В 2.0.х никакого ОЛЕ нет. А свойства, думается, скоро будут поддерживаться… Если очень горит, можно и самому реализовать и патч разработчикам выслать.
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

А как же MgOle2FOrFPC.
http://www.geocities.com/michailgm/MgOle2ForFPC.zip
Не совсем как в Delphi, но все же.
cepreu
новенький
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

Сообщение cepreu »

v-t-l писал(а):А как же MgOle2FOrFPC.
http://www.geocities.com/michailgm/MgOle2ForFPC.zip
Не совсем как в Delphi, но все же.


Есть ети модули
немогу понять конец строки: 'visible', [true]);
точнее как передать строковые параметры и параметры для процедур и функций??
:(

Заранее спасибо!!1
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Строковые параметры передавать в виде WideString, вроде.
В квадратных скобках, как массив параметров.
cepreu
новенький
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

Сообщение cepreu »

v-t-l писал(а):Строковые параметры передавать в виде WideString, вроде.
В квадратных скобках, как массив параметров.


Можеж привисти небольной пример!!
Заранее Спасибо!!
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Я вообще-то не возился с этим, но наверно что-то вроде

Код: Выделить всё

var
  S: WideString;

...

S := 'My text';
OC.SetProperty('Caption',[S]);


Если параметров несколько, то [var1, var2, var3].
cepreu
новенький
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

Сообщение cepreu »

v-t-l писал(а):Я вообще-то не возился с этим, но наверно что-то вроде

Код: Выделить всё

var
  S: WideString;

...

S := 'My text';
OC.SetProperty('Caption',[S]);


Если параметров несколько, то [var1, var2, var3].


Спасибо попробую!!
cepreu
новенький
Сообщения: 24
Зарегистрирован: 01.05.2007 13:20:15
Откуда: г.Киев

Сообщение cepreu »

Иван Шихалев писал(а):В 2.0.х никакого ОЛЕ нет

Как можно закрыть данную тему форума чтоб не болталась???

попросить модератора =) Attid.
Закрыто