Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Delphi MSWord自动化对齐段落?_Delphi_Ms Word_Automation - Fatal编程技术网

如何使用Delphi MSWord自动化对齐段落?

如何使用Delphi MSWord自动化对齐段落?,delphi,ms-word,automation,Delphi,Ms Word,Automation,我想将文本对齐到中心,但我不知道如何实现它。 这是我的密码: try MsWord := GetActiveOleObject('Word.Application'); except try MsWord := CreateOleObject('Word.Application'); MsWord.Visible := True; except Exception.Create('Error'); end; end;

我想将文本对齐到中心,但我不知道如何实现它。 这是我的密码:

  try
    MsWord := GetActiveOleObject('Word.Application');
  except
    try
      MsWord := CreateOleObject('Word.Application');
      MsWord.Visible := True;
    except
      Exception.Create('Error');
    end;
  end;
  MSWord.Documents.Add;
  MSWord.Selection.Font.Size := 22;
  MSWord.Selection.Font.Bold := true;
  MSWord.Selection.TypeText(#13#10);
  MSWord.Selection.TypeText('I want this to be center-aligned'); 
  ...
  MSWord.ActiveDocument.SaveAs('C:\doc2.doc');
请帮忙

谢谢

这对我很有用:

procedure TForm1.Button1Click(Sender: TObject);
var
  MSWord : OleVariant;
begin
  try
    MsWord := GetActiveOleObject('Word.Application');
  except
    try
      MsWord := CreateOleObject('Word.Application');
      MsWord.Visible := True;
    except
      Exception.Create('Error');
    end;
  end;
  MSWord.Documents.Add;
  MSWord.Selection.Font.Size := 22;
  MSWord.Selection.Font.Bold := true;
  MSWord.Selection.TypeText(#13#10);
  MSWord.Selection.TypeText('I want this to be center-aligned');
  MSWord.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
  MSWord.ActiveDocument.SaveAs('C:\doc2.doc');
end;
顺便说一句,自己找到答案的方法是进入Word,开始录制宏,执行操作,停止录制,然后编辑宏以查看Word生成的代码。如果使用后期绑定(通过OleVariant从Delphi访问Word),则将其转换为Delphi通常相当简单,但如果使用早期绑定,则可能会有点冗长,因为早期绑定需要指定所有参数,而后期绑定允许您省略大部分参数。

这对我来说很有用:

procedure TForm1.Button1Click(Sender: TObject);
var
  MSWord : OleVariant;
begin
  try
    MsWord := GetActiveOleObject('Word.Application');
  except
    try
      MsWord := CreateOleObject('Word.Application');
      MsWord.Visible := True;
    except
      Exception.Create('Error');
    end;
  end;
  MSWord.Documents.Add;
  MSWord.Selection.Font.Size := 22;
  MSWord.Selection.Font.Bold := true;
  MSWord.Selection.TypeText(#13#10);
  MSWord.Selection.TypeText('I want this to be center-aligned');
  MSWord.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
  MSWord.ActiveDocument.SaveAs('C:\doc2.doc');
end;

顺便说一句,自己找到答案的方法是进入Word,开始录制宏,执行操作,停止录制,然后编辑宏以查看Word生成的代码。如果使用后期绑定(通过一个OleVariant从Delphi访问Word),那么将其转换为Delphi通常是相当简单的,但是如果使用早期绑定,则可能会有点冗长,因为早期绑定需要指定所有参数,而后期绑定允许您省略大部分参数。

谢谢。这很有效,而且你的建议也很好。我以前用Excel做这个,但忘了我也可以用Word来做:)@user1137313:我对这个问题投了更高的票,但如果你喜欢的话,你也应该对这个答案投更高的票(你已经将其标记为已接受,但这也很有帮助)。只是一个建议,我做到了。再次感谢;)谢谢这很有效,而且你的建议也很好。我以前用Excel做这个,但忘了我也可以用Word来做:)@user1137313:我对这个问题投了更高的票,但如果你喜欢的话,你也应该对这个答案投更高的票(你已经将其标记为已接受,但这也很有帮助)。只是一个建议,我做到了。再次感谢;)OT:Exception.Create('Error')的含义是什么?顺便说一句,最好只捕获
EOleSysError
exceptions.OT:
Exception.Create('Error')的含义是什么?顺便说一句,最好只捕获
EOleSysError
异常。