Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Как установить свойства таблицы Word?!


Автор: NCoder 5.4.2011, 20:11
Форумчане, подскажите, как установить свойства таблицы Word средствами Delphi?! Используются компоненты WordApplication, WordDocument и WordParagraphFormat. Знаю что можно и без них (как в книге Корнякова), но хочется именно с ними. Конкретнее, нужно установить видимые границы таблицы с определенно заданной толщиной. То есть, имеется такой код (который выдает таблицу со слепой границей):
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, WordXP, OleServer;

type
  TForm1 = class(TForm)
    WordApplication1: TWordApplication;
    WordParagraphFormat1: TWordParagraphFormat;
    WordDocument1: TWordDocument;
    Button1: TButton;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  fn: OleVariant;// имя doc файла при сохранении SaveDialog
  sk: range;// кол-во строк и колонок в таблице

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WordApplication1.Connect;
WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);

WordApplication1.Selection.Tables.Add(WordApplication1.Selection.Range,2,2, EmptyParam, EmptyParam);

SaveDialog1.Execute;
fn:=SaveDialog1.FileName;
WordDocument1.SaveAs(fn);
WordApplication1.Disconnect;
WordApplication1.Quit;

end;

end.


ЗЫ Microsoft Visual Basic выдает что-то многострочное и для меня пока совершенно непонятное.

Автор: Rrader 8.4.2011, 16:48
Код

var
  NewTable: Table;
begin
  ...

  NewTable := WordApplication1.Selection.Tables.Add(
    WordApplication1.Selection.Range, 2, 2, EmptyParam, EmptyParam);
  NewTable.Borders.InsideLineStyle := wdLineStyleSingle;
  NewTable.Borders.OutSideLineStyle := wdLineStyleSingle;
  NewTable.Borders.InsideLineWidth := wdLineWidth300pt;
  NewTable.Borders.OutsideLineWidth := wdLineWidth300pt;

  ...

Автор: NCoder 12.4.2011, 11:09
Ок, спасибо!

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