使用此代码检索已安装的MS Word的版本:
uses uses oleauto;
[...]
function TForm2.GetWordVersion:string;
const
wdDoNotSaveChanges = 0;
var
WordApp: OLEVariant;
WordVersion: variant;
begin
Try
WordApp := CreateOLEObject('Word.Application');
WordVersion := WordApp.version;
WordApp.Quit(wdDoNotSaveChanges);
except
on E: Exception do
begin
WordVersion := -1;
end;
End;
Result := wordversion;
end;
我的机器上有140,我的同事得到14.这两个都是win7 / Word2010,但我在意大利,他在印度。
有人知道这个吗?
为什么不同的价值观?
由于
答案 0 :(得分:2)
我猜这是一个小数分隔符问题。 Word返回字符串'14 .0',然后当您转换为整数时,句点在一台机器上被视为位置分隔符,在另一台机器上被视为小数分隔符。
解决方案是停止转换为整数,我推断你正在使用未显示的代码。
我从这个评论中推断出来:
我可以将它转换为字符串并使用前2个字符。
由于问题中的代码对字符串进行操作,因此我得出结论,问题中未显示的其他代码正在转换为整数。