3

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

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

除了在文档中,出现数字 89 而不是字母 Y。

错误可能来自我的代码还是 Word 文档?任何方向都感激地接受。

4

1 回答 1

4

您的文字'Y'是字符文字而不是字符串字符串文字。的ASCII 码Y是 89

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

要解决此问题,您可以这样做:

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

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

于 2012-12-10T10:21:38.387 回答