【发布时间】:2014-04-05 06:28:55
【问题描述】:
我想将列表中的联系人显示到 TListBox 上。我在运行 Delphi XE 的 Windows 7 PC 上安装并运行了 Communicator。我正在使用 CommunicatorAPI_TLB 和 CommunicatorPrivate_TLB。
我单击登录和注销按钮,程序按预期运行:我的 Communicator 登录和注销。很酷。
问题是当我尝试单击列表用户按钮时。 Contacts.Count 方法似乎给我带来了访问冲突。我在小组中尝试过,结果相同。谁能发现我做错了什么?
{ This IMessenger3 Class Inherits from the IMessenger2 interface -> IMessenger... }
Communicator : IMessenger3;
Contacts : IMessengerContacts;
Contact : IMessengerContact;
Groups : IMessengerGroups;
Connected : Boolean;
End;
Var
frmMain: TfrmMain;
Implementation
{$R *.dfm}
{ ---------------------------------------------------------------------------- }
Procedure TfrmMain.FormCreate(Sender: TObject);
Begin
Communicator := CoMessenger.Create;
End; { FormCreate Procedure }
Procedure TfrmMain.btnSignInClick(Sender: TObject);
Begin
Communicator.AutoSignin;
Connected := True;
End; { btnSignInClick Procedure }
Procedure TfrmMain.btnSignOutClick(Sender: TObject);
Begin
Communicator.Signout;
Connected := False;
End; { btnSignOutClick Procedure }
Procedure TfrmMain.btnLoadContactsClick(Sender: TObject);
Var
ContactIndex : Integer;
Begin
{ Load my contacts into a listbox }
Contacts := IMessengerContacts (Communicator.MyContacts);
Groups := IMessengerGroups (Communicator.MyGroups);
If (Contacts <> Nil) Then Begin
try
showmessage (inttostr(Groups.Count));
showmessage (inttostr(Contacts.count));
except
end;
(*
For ContactIndex := 0 To (Contacts.Count) Do Begin
Contact := IMessengerContact (Contacts.Item (ContactIndex));
{ Add the contact to the list }
lbxContacts.AddItem (Contact.FriendlyName, Nil);
End; { For }
*)
End; { If <> Nil }
End;
【问题讨论】:
-
欢迎来到 StackOverflow。 “似乎给我一个访问冲突”给我们绝对没有什么可以帮助你。请编辑您的问题并添加 exact 错误消息,包括所有内存地址。如果您向我们提供有关问题的信息,它会让您更容易(和更快)获得帮助,并且细节很重要,因为我们无法从这里看到您的屏幕来自己获取它们。 :) 谢谢。
-
非常感谢肯!没错...通过将其从 Hard Type Cast 更改为 AS 可以解决问题...谢谢!!!!!
-
别忘了接受最佳答案,请参阅faq#howtoask。
标签: delphi pascal office-communicator