Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Поля в Word №2 :)


Автор: Com123 16.9.2005, 23:25
Создаём новый докУмент, и пытаемся изменить верхнее поле(да вообще любое):

Код

var
  wrd: OleVariant;

begin
  wrd:=CreateOLEObject('Word.Application');
  wrd.Documents.Add(EmptyParam,EmptyParam);
  //wrd.Visible:=True;
  wrd.ActiveDocument.PageSetup.TopMargin := wrd.CentimetersToPoints(0.63);
end;


В итоге на последней строке(несмотря на то, что она сделана по аналогии со скриптом макроса)
получаем исключение EOleSysError "Неопознанная ошибка"(Микрософт мать его хоть бы ошибки
научился детализировать...). Где грабли??? smile

Автор: Albinos_x 17.9.2005, 22:02
у меня всё работает, попробуй так:
Код

var    
  wrd: OleVariant;    
begin    
  wrd:=CreateOLEObject('Word.Application');    
  wrd.ConnectKind := ckNewInstance;
  wrd.AutoConnect:=true;
  wrd.Documents.Add(EmptyParam,EmptyParam);    
  wrd.Selection.PageSetup.TopMargin := wrd.CentimetersToPoints(0.63);    
end;

Добавлено @ 22:09
упс.. не заметил:
Цитата
wrd.ActiveDocument.PageSetup.

у меня:
Цитата
wrd.Selection.PageSetup.TopMargin

мой должен быть рабочим... Проверял...

Автор: Com123 19.9.2005, 21:41
Блин не пашет твой вариант, то же исключение.
Короче трабла в CentimetersToPoints
пишу

Код

  wrd.Selection.PageSetup.TopMargin := 1;


и все ок

блин и как эту проблему решить?

Автор: Albinos_x 23.9.2005, 17:52
странно, но у меня всё работает...

------

когда выполняешь другие действия ошибка возникает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)