CreateOleObject('Word.Application');

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

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

CreateOleObject('Word.Application');

Сообщение cepreu » 22.05.2007 13:14:32

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

Код: Выделить всё
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 в памяти появляется но какие нибудь команды ему слать не получается??? :(

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

Сообщение Иван Шихалев » 22.05.2007 14:52:36

Где присваивается значение V? На данный момент через автоматизацию не работают свойства, работают методы.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение cepreu » 22.05.2007 15:13:41

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

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

Сообщение cepreu » 22.05.2007 15:16:28

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

Сообщение SAK » 23.05.2007 00:49:51

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.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Сообщение Иван Шихалев » 23.05.2007 09:38:03

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

PS. Тема не имеет отношения к Lazarus — переношу в FPC.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение SAK » 23.05.2007 12:51:47

С упомятой версией Lazarus используется FPC 2.0.4. Даже если в более поздних начали реализовывать возможность работы с OLE, то я не представляю как это использовать пока не поддерживаются свойства. А хотелось бы.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Сообщение Иван Шихалев » 25.05.2007 09:13:11

В 2.0.х никакого ОЛЕ нет. А свойства, думается, скоро будут поддерживаться… Если очень горит, можно и самому реализовать и патч разработчикам выслать.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение v-t-l » 26.05.2007 19:12:42

А как же MgOle2FOrFPC.
http://www.geocities.com/michailgm/MgOle2ForFPC.zip
Не совсем как в Delphi, но все же.
v-t-l
энтузиаст
 
Сообщения: 734
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение cepreu » 30.05.2007 16:15:44

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


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

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

Сообщение v-t-l » 30.05.2007 17:13:46

Строковые параметры передавать в виде WideString, вроде.
В квадратных скобках, как массив параметров.
v-t-l
энтузиаст
 
Сообщения: 734
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение cepreu » 31.05.2007 21:56:57

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


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

Сообщение v-t-l » 31.05.2007 22:49:20

Я вообще-то не возился с этим, но наверно что-то вроде
Код: Выделить всё
var
  S: WideString;

...

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


Если параметров несколько, то [var1, var2, var3].
v-t-l
энтузиаст
 
Сообщения: 734
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение cepreu » 01.06.2007 11:06:29

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 » 21.09.2007 22:48:47

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

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

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


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

Рейтинг@Mail.ru