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