ВНИМАНИЕ! Лучше использовать Help.chm сейчас, там более полная информация о компоненте, сорри, нехватает времени обновить русскую версию. |
|
Иногда прямые соединения не могут быть установлены между клиентами: возможно используется proxy, проблемы с сетью или какие-нить еще непонятные проблемы. TICQClient реализует эти оба протокола! Все функции & процедуры прямых соединений в этой помощи выделяются символами "(DC)". Есть пользователь запросит авторизацию(authorization request), тогда он будет автоматически авторизован. |
property Status: LongWord property LoggedIn: Boolean property UIN: LongWord property Pasword: String property ICQServer: String property ICQPort: Word property ConvertToPlaintext: Boolean property ContactList: TStrings property VisibleList: TStrings property InvisibleList: TStrings property AutoAwayMessage: String |
procedure Login(Status: LongWord = S_ONLINE) procedure Disconnect procedure SendMessage(UIN: LongWord; Msg: String) procedure SendURL(UIN: LongWord; const URL, Description: String); function AddContact(UIN: LongWord): Boolean RemoveContact(UIN: LongWord) procedure RemoveContactVisible(UIN: LongWord) procedure RemoveContactInvisible(UIN: LongWord) procedure RequestInfo(UIN: LongWord) procedure SearchByMail(Email: String) procedure SearchRandom(Group: Word) procedure SearchWhitePages(First, Last, Nick, Email: String; MinAge, MaxAge: Word; Gender: Byte; Language, City, State: String; Country, Company, Department, Position: String; Occupation, Past, PastDesc, Interests, InterDesc, Affiliation, AffiDesc, HomePage: String; Online: Boolean); procedure SetSelfInfoGeneral(NickName, FirstName, LastName, Email, City, State, Phone, Fax, Street, Cellular, Zip, Country: String; TimeZone: Byte; PublishEmail: Boolean); procedure SetSelfInfoMore(Age: Word; Gender: Byte; HomePage: String; BirthYear: Word; BirthMonth, BirthDay: Byte; Language1, Language2, Language3: String); procedure SetSelfInfoAbout(About: String); procedure RequestContactList; procedure DestroyUINList(var List: TList); procedure SendSMS(const Destination, Text: String); ICQClient1.SendSMS('+3739401111', 'Hello, World!'); procedure SendMessageAdvanced(UIN: LongWord; const Msg: String; ID: Word; RTFFormat: Boolean); function SendMessageDirect(UIN: LongWord; const Msg: String; RTFFormat: Boolean): Word; (DC) procedure RegisterNewUIN(const Password: String); procedure RequestAwayMsg(UIN: LongWord; ID: Word; ReqStatus: Byte); UnregisterUIN(const Password: String); procedure ChangePassword(const NewPassword: String); function DirectConnectionEstabilished(UIN: LongWord): Boolean; (DC) function SendContacts(UIN: LongWord; Contacts: TStringList): Word; (DC) procedure TMainForm.Button2Click(Sender: TObject); var List: TStringList; begin List := TStringList.Create; List.Add('52341243=Monica'); List.Add('12333391=Бритний Спеарзсс'); List.Add('8213876='); List.Add('1234333=Bob'); List.Add('925464568='); ICQClient1.SendContacts(4024781, List); List.Free; end; function RequestContacts(UIN: LongWord; const Reason: String): Word; (DC)
Посылает запрос контактов UIN'у. procedure TMainForm.Button1Click(Sender: TObject); begin ICQClient1.RequestContacts(4024781, 'Кинь мне пару контактов плз :)'); end; |
OnAddedYou(Sender: TObject; UIN: String) OnAdvancedMsgAck(Sender: TObject; UIN: String; ID: Word; AcceptType: Byte; AcceptMsg: String) OnAutoMsgResponse(Sender: TObject; UIN: String; ID: Word; RespStatus: Byte; Msg: String); OnChangePasswordOk(Sender: TObject); OnConnectionFailed(Sender: TObject) OnContactListRecv(Sender: TObject; UIN: String; ContactList: TStringList); (DC) OnContactListRequest(Sender: TObject; UIN, Reason: String); (DC) OnDirectPacketAck(Sender: TObject; ID: Word); (DC) OnLogin(Sender: TObject) OnMessageRecv(Sender: TObject; Msg, UIN: String); OnNewUINRefused(Sender: TObject); OnNewUINRegistered(Sender: TObject; UIN: String); OnOfflineMsgRecv(Sender: TObject; Msg, UIN: String); OnOfflineURLRecv(Sender: TObject; Description, URL, UIN: String); OnPktDirectParse(Sender: TObject; Buffer: Pointer; BufLen: Cardinal; Incoming: Boolean); (DC) OnPktParse(Sender: TObject; Buffer: Pointer; BufLen: Cardinal; Incoming: Boolean); OnServerListRecv(Sender: TObject; SrvContactList: TList); TUINEntry = record UIN: LongWord; //UIN в контакт листе Nick: ShortString; //Nick, может быть пустым CType: Word; //Type, может быть U_NORMAL(нормальный пользователь), U_VISIBLE_LIST(пользователь в visible листе) //, U_INVISIBLE_LIST(пользователь в invisible листе), U_IGNORE_LIST(пользователь в ignore листе) CTag: Word; //Зарезервировано для внутренного использования CGroup: ShortString; //Группа в которой содержится пользователь (например General, Friends, etc). end;Пример использования: procedure TMainForm.ICQClient1ServerListRecv(Sender: TObject; SrvContactList: TList); var i: Word; UserInfo: TUINEntry; begin if SrvContactList.Count > 0 then for i := 0 to SrvContactList.Count - 1 do begin UserInfo := PUINEntry(SrvContactList.Items[i])^; Memo1.Lines.Add(UserInfo.Nick + ' в группе ' + UserInfo.CGroup + ' и его UIN ' + IntToStr(UserInfo.UIN)); end; ICQClient1.DestroyUINList(SrvContactList); end; OnStatusChange(Sender: TObject; UIN: String; Status: Cardinal); OnUnregisterBadPassword(Sender: TObject); OnUnregisterOk(Sender: TObject); OnURLRecv(Sender: TObject; Description, URL, UIN: String); OnUserFound(Sender: TObject; UIN, Nick, FirstName, LastName, Email: String; Status: Word; Gender, Age: Byte;
SearchComplete: Boolean); OnUserGeneralInfo(Sender: TObject; UIN, NickName, FirstName, LastName, Email, City, State, Phone, Fax, Street, Cellular, Zip, Country: String; TimeZone: Byte; PublishEmail: Boolean); var S: String; <....> S := IntToStr(- ShortInt(TimeZone) div 2) + ':' + IntToStr(Abs(ShortInt(TimeZone) mod 2 * 30)); OnUserInfoAbout(Sender: TObject; UIN, About: String); UserInfoBackground(Sender: TObject; UIN: String; Pasts, Affiliations: TStringList); OnInfoInterests(Sender: TObject; UIN: String; Interests: TStringList); OnUserInfoMore(Sender: TObject; UIN: String; Age: Word; Gender: Byte; HomePage: String; BirthYear, BirthMonth, BirthDay: Word; Lang1, Lang2, Lang3: String); OnUserInfoMoreEmails(Sender: TObject; UIN: String; Emails: TStringList); OnUserNotFound(Sender: TObject); OnUserOffline(Sender: TObject; UIN: String); OnUserWorkInfo(Sender: TObject; UIN, WCity, WState, WPhone, WFax, FAddress, WZip, WCountry, WCompany, WDepartment, WPosition, WOccupation, WHomePage: String); |
|
(C) 2002, Демченко Александр, Молдавия, Кишинев