从Delphi输入文本到Word

时间:2012-12-10 10:05:20

标签: delphi ms-word delphi-xe2

我正在使用Delphi XE2并使用以下代码将字母Y输入到Word(2010)模板中的书签中。

Doc.Bookmarks.Item('NS').Range.InsertAfter('Y');

除了文件外,代替字母Y,出现数字89.

错误可能来自我的代码或Word文档吗?任何方向感激不尽。

1 个答案:

答案 0 :(得分:4)

您的文字'Y'是字符文字而不是字符串字符串文字。 ASCII code for Y is 89

所以,你传递的是Char而不是string。当Word需要获取该整数的字符串表示时,它只需将整数89转换为其文本表示形式,即字符串'89'

要解决此问题,您可以执行此操作:

var
  Text: string;
....
Text := 'Y';
Doc.Bookmarks.Item('NS').Range.InsertAfter(Text);

我们的想法是确保将字符串传递给InsertAfter()而不是字符。请记住InsertAfter()收到变量参数,因此您需要注意变体中存储的有效负载类型。