我有我的表单上包含名称和数字的ListView,我必须提供打印MSWord文档与这些数据填充到文档的表。一切工作正常与英文字符,但当我尝试发送一些东欧或俄罗斯字符时,它可以在文档中看到“?”或一些“垃圾”。此外,我无法从文档中将这些字符读回应用程序。如何使用Delphi 7从MSWord 2003读取/写入本地字符?
我的问题是:
- 如何发送的字符,如
"ЉЊĐŠŽČ"
到Word文档? - 如何从MSWord中将这些字符读回应用程序?
总之,代码如下:
word := CreateOleObject('Word.Application');
word.Visible := true;
doc := word.documents.Open(ExtractFilePath(Application.ExeName) + '\tpl.doc');
table := word.ActiveDocument.Tables.Item(1);
table.Cell(1,2).Range.Text := 'MY TEXT';
word.ActiveDocument.Close;
word.Quit;
word := UnAssigned;
doc := UnAssigned;
table := UnAssigned;
我可以改变字体的name
,size
和color
属性,但不能做到这一点与charset
财产。
有人吗?安装
软件:
- Windows XP专业版
- 的Microsoft Word 2003
- 德尔福7企业版
嗯,有趣的,从来没有想过WideString,但...线'tmp:='ЉЊĐŠŽČ';'不能存储在.pas文件(“ЉЊĐ”变成“?”,“ŠŽ”都可以,“Č “变成”C(“),我试过保存。pas文件为UTF-8或Unicode但它不起作用:(谢谢你的努力 – Wh1T3h4Ck5 2011-06-16 17:50:11
关于这样的常量,Delphi 7 IDE只使用当前的系统代码页AFAIK。所以你可能可以输入这样的字符if你的系统当前代码页能够处理这些字符,对于这样的常量,你必须通过#$ 005f#$ 20A1语法等来转换Unicode字符,你最好使用一个包含所有需要的字符串的外部unicode文件,然后在程序启动时加载它。 – 2011-06-17 05:12:24
正是!非常感谢! – Wh1T3h4Ck5 2011-06-18 10:10:11