我正在使用 Delphi XE2 并使用以下代码将字母 Y 输入到 Word (2010) 模板中的书签中。
Doc.Bookmarks.Item('NS').Range.InsertAfter('Y');
除了在文档中,出现数字 89 而不是字母 Y。
错误可能来自我的代码还是 Word 文档?任何方向都感激地接受。
我正在使用 Delphi XE2 并使用以下代码将字母 Y 输入到 Word (2010) 模板中的书签中。
Doc.Bookmarks.Item('NS').Range.InsertAfter('Y');
除了在文档中,出现数字 89 而不是字母 Y。
错误可能来自我的代码还是 Word 文档?任何方向都感激地接受。
您的文字'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()
接收一个变体参数,因此您需要注意存储在变体中的有效负载的类型。