//procedure TfrmLogin.NewRegCallback(event: string; tag: TXMLTag; data: WideString); procedure Tform_autoreg.NewRegCallback(event: string; tag: TXMLTag); begin //参见 _session.FireEvent('/session/regok', xml); // we are getting something from the socket if (event = '/session/regok') then begin //showmessage('注册成功.'); ShowRiserWindow(nil, '注册成功.', ico_info); end //连接成功 else if event = '/session/connected' then//好象这个才起作用 begin //showmessage('注册成功!'); //ShowRiserWindow(nil, '注册成功!', ico_info);
//这个事件会发生两次,所以第一次时注册就行了 if bNew = false then begin bNew := true; //regSession.CreateAccount;//连接成功后再注册 //参考 session.pas 函数 TJabberSession.StreamCallback 的 // if ((_register) or (_profile.NewAccount)) then begin 处 //如果这样调用的话将会发送两次注册信息导致回应事件也被调用两次,其实将 Profile 的 //属性 NewAccount 设置为 true 是会自动注册的 end;
end else if event = '/session/authenticated' then//好象这个才起作用//其实是登录成功 begin //showmessage('注册成功!'); ShowRiserWindow(nil, '注册成功!', ico_info);
//成功的话自动登录 self.ModalResult := mrok; end else if (event = '/session/regerror') then begin //showmessage('注册失败.'); ShowRiserWindow(nil, '注册失败.', ico_info); //showmessage(tag.xml); //regSession.UnRegisterCallback(0);