我正在将以下示例代码转换为Delphi:
http://msdn.microsoft.com/en-us/library/bb176406%28v=office.12%29.aspx
我的代码类似于:
var vTable, vRow: OleVariant; begin .... while vTable.EndOfTable = False do begin vRow := vTable.GetNextRow; sEmail := vRow['Email1Address']; ShowMessage(sEmail); end; end;
问题是我需要传递一个字符串索引'Email1Address',但是Delphi会给出错误:不兼容的类型:整数和字符串。
我应该使用不同类型的变种吗?
TIA
答案 0 :(得分:3)
我已经看过从TLB文件生成的Outlook单元,它看起来像这样:
_Row = interface(IDispatch)
['{000630D3-0000-0000-C000-000000000046}']
//snip
function Item(Index: OleVariant): OleVariant; safecall;
//snip
end;
Row接口有一个方法Item,它接受OleVariant。所以使用这个:
sEmail := vRow.Item('Email1Address');
另请查看MSDN help。