TICQClient


╤εΣσ≡µαφΦσ:
  • ╬ TICQClient'σ
  • ╠εΣ≤δΦ TICQClient'α
  • ┬αµφα  Φφ⌠ε≡∞α÷Φ  εß ICQ ∩≡ε≥εΩεδσ
  • Properties
  • Functions
  • Events
  • ╚φ⌠ε≡∞α÷Φ 


    ╬ TICQClient'σ

    ▌≥ε φσßεδⁿ°α  Ωε∞∩εφσφ≥α, Ωε≥ε≡α  ∩ετΓεδ σ≥ Γα∞ εß∙α≥ⁿ±  ± ICQ ∩εδⁿτεΓα≥σδ ∞Φ ∩≡ ∞ε Φτ Γα°σΘ ∩≡επ≡α∞∞√. ╚±⌡εΣφΦΩΦ ΣεΓεδⁿφε ⌡ε≡ε°ε ε∩Φ±αφ√(∩≡αΓΣα, φα αφπδΦΘ±Ωε∞), ≥αΩ ≈≥ε ∞εµφε ßστ ∩≡εßδσ∞ ≡α±°Φ≡ ≥ⁿ Γετ∞εµφε±≥Φ Ωε∞∩εφσφ≥√. └Γ≥ε≡ ≡αßε≥ασ≥ ±εΓσ≡°σφφε τα ßσ±∩δα≥φε, ≥αΩ ≈≥ε τα ε°ΦßΩΦ Φ ≡ατφ√σ φσΣε≈σ≥√ Φ ≥Σ. Φ ≥∩. ßΦ≥ⁿ ∞σφ  φσ φαΣε ;). ═αΣσ■±ⁿ, Γ±σ ²≥ε Σσδε Γα∞ ∩εφ≡αΓΦ≥± .

    ┬═╚╠└═╚┼! ╦≤≈°σ Φ±∩εδⁿτεΓα≥ⁿ Help.chm ±σΘ≈α±, ≥α∞ ßεδσσ ∩εδφα  Φφ⌠ε≡∞α÷Φ  ε Ωε∞∩εφσφ≥σ, ±ε≡≡Φ, φσ⌡Γα≥ασ≥ Γ≡σ∞σφΦ εßφεΓΦ≥ⁿ ≡≤±±Ω≤■ Γσ≡±Φ■.


    ╠εΣ≤δΦ TICQClient'α

    ICQWorks.pas - ±εΣσ≡µΦ≥ Γ±σ φΦτΩε≤≡εΓφσΓ√σ ⌠≤φΩ÷ΦΦ Φ Ωεφ±≥αφ≥√.
    MySocket.pas - ∩≡ε±≥α  Φ ≤Σεßφα  ≡σαδΦτα÷Φ  ±εΩσ≥εΓ, Φ±∩εδⁿτ≤σ≥±  Γ TICQClient'σ.
    ICQDirect.pas - εß·σΩ≥√, ≡σαδΦτ≤■∙Φσ ∩εΣΣσ≡µΩ≤ ∩≡ ∞√⌡ ±εσΣΦφσφΦΘ.
    ICQClient.pas - Ωε∞∩εφσφ≥α.
    ICQClient.dcr - ΦΩεφΩα Ωε∞∩εφσφ≥√.

    ─δ  φα≈αδα Γ√ Σεδµφ√ ≤±≥αφεΓΦ≥ⁿ TICQClient. ╟α∩≤±≥Φ≥σ Delphi, ∩ε≥ε∞ Γ πδαΓφε∞ ∞σφ■: Component > Install Component > ≥≤≥ Γ√ Σεδµφ√ Γ√ß≡α≥ⁿ ⌠αΘδ ICQClient.pas Φ φαµα≥ⁿ Ωφε∩Ω≤ OK, τα≥σ∞ Γ ∩ε ΓΦΓ°σ∞±  εΩφσ - Ωφε∩Ω≤ Compile.
    ┼±δΦ ß√δΦ ≤±≥φεΓδσφ√ ßεδσσ ≡αφφΦσ Γσ≡±ΦΦ TICQClient'α, ≥επΣα Γα∞ φ≤µφε ∩σ≡σ≤±≥αφεΓΦ≥ⁿ Ωε∞∩εφσφ≥ ≥αΩΦ∞ µσ εß≡ατε∞.


    ┬αµφα  Φφ⌠ε≡∞α÷Φ  εß ICQ ∩≡ε≥εΩεδσ

    ICQ ∩≡ε≥εΩεδ ∩εΣ≡ατΣσδ σ≥±  φα ±δσΣ≤■∙Φσ ≈α±≥Φ:

  • ╤σ≡Γσ≡φ√Θ ∩≡ε≥εΩεδ, Φ∩εδⁿτ≤σ≥±  Σδ  εß∞σφ  Φφ⌠ε≡∞α÷ΦσΘ ± ±σ≡Γσ≡ε∞, ∩ε±δσΣφ   Γσ≡±Φ  v8 (Φ±∩εδⁿτ≤σ≥±  Γ ICQ2001b, ICQ2002a)
  • ╧≡ ∞εΘ(direct) ∩≡ε≥εΩεδ, Φ±∩εδⁿτ≤σ≥±  φα∩≡ ∞≤■ ∞σµΣ≤ ICQ ΩδΦσφ≥α∞Φ Φ φσ ταΓΦ±Φ≥ ε≥ ±σ≡Γσ≡φεπε ∩≡ε≥εΩεδα.
    ╚φεπΣα ∩≡ ∞√σ ±εσΣΦφσφΦ  φσ ∞επ≤≥ ß√≥ⁿ ≤±≥αφεΓδσφ√ ∞σµΣ≤ ΩδΦσφ≥α∞Φ: Γετ∞εµφε Φ±∩εδⁿτ≤σ≥±  proxy, ∩≡εßδσ∞√ ± ±σ≥ⁿ■ ΦδΦ ΩαΩΦσ-φΦ≥ⁿ σ∙σ φσ∩εφ ≥φ√σ ∩≡εßδσ∞√.
    TICQClient ≡σαδΦτ≤σ≥ ²≥Φ εßα ∩≡ε≥εΩεδα!
    ┬±σ ⌠≤φΩ÷ΦΦ & ∩≡ε÷σΣ≤≡√ ∩≡ ∞√⌡ ±εσΣΦφσφΦΘ Γ ²≥εΘ ∩ε∞ε∙Φ Γ√Σσδ ■≥±  ±Φ∞Γεδα∞Φ "(DC)".
    ┼±≥ⁿ ∩εδⁿτεΓα≥σδⁿ τα∩≡ε±Φ≥ αΓ≥ε≡Φτα÷Φ■(authorization request), ≥επΣα εφ ß≤Σσ≥ αΓ≥ε∞α≥Φ≈σ±ΩΦ αΓ≥ε≡ΦτεΓαφ.

  • Properties(╤ΓεΘ±≥Γα)

    property Status: LongWord
    ╧ετΓεδ σ≥ ∩εδ≤≈Φ≥ⁿ/≤±≥αφεΓΦ≥ⁿ online ±≥α≥≤± ΩδΦσφ≥α, ∩ε±δσ δεπΦφα φα ±σ≡Γσ≡.
    ╤≥α≥≤± ∞εµσφ ß√≥ⁿ εΣφΦ∞ Φτ:
    S_ONLINE
    S_INVISIBLE
    S_AWAY
    S_NA
    S_OCCUPIED
    S_DND
    S_FFC

    property LoggedIn: Boolean
    ┼±δΦ Γ√ ταδεπΦφΦδΦ±ⁿ φα ±σ≡Γσ≡, ≥επΣα ±ΓεΘ±≥Γε Γσ≡φσ≥ TRUE.

    property UIN: LongWord
    ╤ΓεΘ±≥Γε ∩ετΓεδ σ≥ ∩εδ≤≈Φ≥ⁿ/≤±≥αφεΓΦ≥ⁿ UIN ∩εδⁿτεΓα≥σδ . ╚±∩εδⁿτ≤σ≥±  ∩≡Φ δεπΦφσ.

    property Pasword: String
    ╤ΓεΘ±≥Γε ∩ετΓεδ σ≥ ∩εδ≤≈Φ≥ⁿ/≤±≥αφεΓΦ≥ⁿ ∩α≡εδⁿ ∩εδⁿτεΓα≥σδ .

    property ICQServer: String
    ICQ ±σ≡Γσ≡, ±δσΣ≤σ≥ Φ±∩εδⁿτεΓα≥ⁿ: 'login.icq.com'

    property ICQPort: Word
    ICQ port, ±δσΣ≤σ≥ Φ±∩εδⁿτεΓα≥ⁿ: '5190'

    property ConvertToPlaintext: Boolean
    ┼±δΦ ²≥ε ±ΓεΘ±≥Γε ≤±≥αφεΓΦ≥ⁿ Γ TRUE, ≥επΣα ±εεß∙σφΦ , ∩≡Φ⌡εΣ ∙Φσ Γ RTF(Rich Text Format) ⌠ε≡∞α≥σ, αΓ≥ε∞α≥Φ≈σ±ΩΦ ß≤Σ≤≥ ±ΩεφΓσ≡≥Φ≡εΓαφ√ Γ ∩≡ε±≥εΘ ≥σΩ±≥(plain text).
    ╧≡Φ∞σ≡ RTF ±εεß∙σφΦ :
    {\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset204{\*\fname Times New Roman;}Times New Roman CYR;}}
    {\colortbl ;\red0\green64\blue0;}
    \viewkind4\uc1\pard\cf1\f0\fs20\'ef\'f0\'e8\'e2\'e5\'f2\par
    }
    ▌ΩΓΦΓαδσφ≥ Γ ∩≡ε±≥ε∞ ≥σΩ±≥σ:
    ∩≡ΦΓσ≥

    property ContactList: TStrings
    ╩εφ≥αΩ≥ δΦ±≥ ∩εδⁿτεΓα≥σδ , *∩ε±√δασ≥±  ≥εδⁿΩε ∩≡Φ δεπΦφσ*. ╩αµΣα  ±≥≡ε≈Ωα -- UIN φε∞σ≡. ┼±δΦ Γ√ ⌡ε≥Φ≥σ ΣεßαΓΦ≥ⁿ Ωεπε-δΦßε Γ Ωεφ≥αΩ≥ δΦ±≥ ∩ε±δσ δεπΦφα, Φ±∩εδⁿτ≤Θ≥σ AddContact procedure.

    property VisibleList: TStrings
    Visible δΦ±≥ ∩εδⁿτεΓα≥σδ . ╩αµΣα  ±≥≡εΩα -- UIN φε∞σ≡. ╧ε±√δασ≥± , ΩεπΣα Γ√ ∩σ≡σ⌡εΣΦ≥σ Γ invisible ±≥α≥≤±. ─εßαΓδ ≥ⁿ ∩εδⁿτεΓα≥σδ  ∞εµφε Γ δ■ßεσ Γ≡σ∞ .

    property InvisibleList: TStrings
    Invisible δΦ±≥ ∩εδⁿτεΓα≥σδ . ╩αµΣα  ±≥≡εΩα -- UIN φε∞σ≡. ╧ε±√δασ≥± , ΩεπΣα Γ√ ∩σ≡σ⌡εΣΦ≥σ Γ ±≥α≥≤± ε≥δΦ≈φ√Θ ε≥ invisible. ─εßαΓδ ≥ⁿ ∩εδⁿτεΓα≥σδ  ∞εµφε Γ δ■ßεσ Γ≡σ∞ .

    property AutoAwayMessage: String
    └Γ≥ε-ε≥Γσ≥ ∩εδⁿτεΓα≥σδ . ┬ εß√≈φεΘ ICQ ²≥ε ε≥Γσ≥ φα 'Read Away-message'.


    Functions(╘≤φΩ÷ΦΦ)

    procedure Login(Status: LongWord = S_ONLINE)
    ╧≡ε÷σΣ≤≡α ≤±≥αφαΓδΦΓασ≥ ±εσΣΦφσφΦσ ± ±σ≡Γσ≡ε∞, Γ√ ±≡ατ≤ ∩σ≡σ⌡εΣΦ≥σ Γ ±≥α≥≤± Status, Ωε≥ε≡√Θ ∩ε ≤∞εδ≈αφΦ■ S_ONLINE, ∞εµφε ταδεπΦφΦ≥ⁿ±  Φ ± Σ≡≤πΦ∞ ±≥α≥≤±ε∞, ±∩ε±εΩ ±≥α≥≤±εΓ Γ property Status.

    procedure Disconnect
    ╬≥±εσΣΦφΦ≥ⁿ±  ε≥ ±σ≡Γσ≡α.

    procedure SendMessage(UIN: LongWord; Msg: String)
    ╧ε±δα≥ⁿ ±εεß∙σφΦσ UIN'≤.

    procedure SendURL(UIN: LongWord; const URL, Description: String);
    ╧ε±δα≥ⁿ URL(±±√δΩ≤) UIN'≤.

    function AddContact(UIN: LongWord): Boolean
    ─εßαΓΦ≥ⁿ UIN'α Γ Γα° Ωεφ≥αΩ≥ δΦ±≥ ∩ε±δσ δεπΦφα. UIN αΓ≥ε∞α≥Φ≈σ±ΩΦ ΣεßαΓδ σ≥±  Γ ContactList TStrings. ╧ε±δσ ΣεßαΓδσφΦ  UIN'α Γ Γα° Ωεφ≥αΩ≥ δΦ±≥, Γ√ ß≤Σσ≥σ ∩εδ≤≈α≥ⁿ ΦτΓσ∙σφΦ  εß Φτ∞σφσφΦ ⌡ σπε ±≥α≥≤±α. ┬ετΓ≡α∙ασ≥ True, σ±δΦ ∩εδⁿτεΓα≥σδⁿ ± ≥αΩΦ∞ UIN'ε∞ φσ ß√δ Γ Γα°σ∞ δΦ±≥σ ≡αφⁿ°σ.

    RemoveContact(UIN: LongWord) procedure
    ╙Σαδ σ≥ UIN Φτ Γα°σπε Ωεφ≥αΩ≥ δΦ±≥α. ╚∩εδⁿτ≤Θ≥σ ∩εΩα Γ√ Γ εφδαΘφσ.

    RemoveContactVisible(UIN: LongWord) procedure
    ╙Σαδ σ≥ UIN Φτ Γα°σπε visible δΦ±≥α. ╚±∩εδⁿτ≤Θ≥σ ∩εΩα Γ√ Γ εφδαΘφσ.

    RemoveContactInvisible(UIN: LongWord) procedure
    ╙Σαδ σ≥ UIN Φτ invisible δΦ±≥α. ╚±∩εδⁿτ≤Θ≥σ ∩εΩα Γ√ Γ εφδαΘφσ.

    RequestInfo(UIN: LongWord)
    ╟α∩≡ε±Φ≥ⁿ Φφ⌠ε≡∞α÷Φ■ εß UIN'σ. ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σ ±δσΣ≤■∙Φσ ΦτΓσ∙σφΦ : OnUserWorkInfo, OnUserInfoMore, OnUserInfoAbout, OnUserInfoInterests, OnUserInfoMoreEmails, OnUserFound.

    procedure SearchByMail(Email: String)
    procedure SearchByUIN(UIN: LongWord)
    procedure SearchByName(FirstName, LastName, NickName, Email: String)
    ╧εΦ±Ω ∩εδⁿτεΓα≥σδ  ∩ε Mail'≤, UIN'≤ ΦδΦ Σ≡≤πεΘ Φφ⌠σ. ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σ OnUserFound ΦτΓσ∙σφΦσ(event) σ±δΦ ⌡ε≥ ß√ εΣΦφ ≈σδεΓσΩ ß√δ φαΘΣσφ ΦδΦ OnUserNotFound σ±δΦ ≥αΩΦ⌡ φσ ±≤∙σ±≥Γ≤σ≥.

    procedure SearchRandom(Group: Word)
    ╧εΦ±Ω ±δ≤≈αΘφεπε ∩εδⁿτεΓα≥σδ  ∩ε π≡≤∩∩σ, πΣσ φε∞σ≡ π≡≤∩∩√ ∞εµσ≥ ß√≥ⁿ εΣφΦ∞ Φτ RandGroups: array[1..11]...(ICQWorks.pas) Ωεφ≥αφ≥√. ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σ OnUserFound ΦτΓσ∙σφΦσ, ≥εδⁿΩε εΣΦφ ∩εδⁿτεΓα≥σδⁿ ß≤Σσ≥ εß τα≥σδⁿφε φαΘΣσφ. (▌≥ε επ≡αφΦ≈σφΦσ ICQ).

    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);
    ╧εΦ±Ω Γ 'White Pages'. ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σ OnUserFound ΦτΓσ∙σφΦσ(event) σ±δΦ ⌡ε≥ ß√ εΣΦφ ≈σδεΓσΩ ß√δ φαΘΣσφ ΦδΦ OnUserNotFound σ±δΦ ≥αΩΦ⌡ φσ ±≤∙σ±≥Γ≤σ≥.

    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);
    ╟αδΦ≥ⁿ φα ±σ≡Γσ≡ about Φφ⌠≤ ε ±σßσ.

    procedure RequestContactList;
    ╟α∩≡ε±Φ≥ⁿ Ωεφ≥αΩ≥ δΦ±≥ ± ±σ≡Γσ≡α. ─δ  ßεδσσ ∩εΣ≡εßφεΘ Φφ⌠ε≡∞α÷ΦΦ ±∞ε≥≡Φ≥σ: OnServerListRecv event.

    procedure DestroyUINList(var List: TList);
    ╬±ΓεßεΣΦ≥ⁿ ∩α∞ ≥ⁿ, Γ Ωε≥ε≡εΘ Γ≡σ∞σφφε ⌡≡αφΦ≥±  Ωεφ≥αΩ≥ δΦ±≥ ∩≡Φφ ≥√Θ ± ±σ≡Γσ≡α.

    procedure SendSMS(const Destination, Text: String);
    ╧ε±√δασ≥ SMS Ω Destination ± ≥σΩ±≥ε∞ Text.
    ╧≡Φ∞σ≡:

      ICQClient1.SendSMS('+3739401111', 'Hello, World!');
      

    procedure SendMessageAdvanced(UIN: LongWord; const Msg: String; ID: Word; RTFFormat: Boolean);
    ╧ε±√δασ≥ ±εεß∙σφΦσ ± Σε∩εδφΦ≥σδⁿφ√∞Φ Γετ∞εµφε±≥ ∞Φ. ╧ε±δσ ≥επε ΩαΩ UIN ∩εδ≤≈Φδ Γα°σ ±εεß∙σφΦσ Γ√ ∩εδ≤≈Φ≥σ ∩εΣ≥Γ≡σµΣσφΦσ. ID - ±δ≤≈αΘφεσ τφα≈σφΦσ, ≥αΩεσ µσ ∩≡Φ⌡εΣΦ≥ Ω Γα∞ Γ ∩εΣ≥Γσ≡µΣσφΦ ⌡(±∞. OnAdvancedMsgAck event). ┼±δΦ Γα°σ ±εεß∙σφΦσ Γ RTF(Rich Text Format) ⌠ε≡∞α≥σ, ≥επΣα RTFFormat Σεδµσφ ß√≥ⁿ True, ßεΘ≥σ±ⁿ Φ±∩εδⁿτεΓα≥ⁿ RTF ⌠ε≡∞α≥, ∩ε≥ε∞≤ ΩαΩ φσΩε≥ε≡√σ ICQ Ωδεφ√ σπε φσ ∩εΣΣσ≡µΦΓα■≥, Γ ≈α±≥φε±≥Φ Ωδεφ√ ∩εΣ linux Φ win32, ≥αΩΦσ ΩαΩ: Miranda, YSM, mICQ, &RQ, StrICQ Φ Σ≡≤πΦσ.

    function SendMessageDirect(UIN: LongWord; const Msg: String; RTFFormat: Boolean): Word; (DC)
    ─δ  ßεδⁿ°σΘ Φφ⌠ε≡∞α÷ΦΦ ±∞ε≥≡Φ≥σ SendMessageAdnaced procedure. ╧εΩα ²≥α ⌠≤φΩ÷Φ  φσ ∩εΣΣσ≡µΦΓασ≥ ∩εΣ≥Γσ≡µΣσφΦΘ, ≥.σ. Γ√ Φ⌡ ∩εδ≤≈α≥ⁿ φσ ß≤Σσ≥σ, ⌡ε≥  ²≥ε Γετ∞εµφε ≡σαδΦτεΓα≥ⁿ. ┬ετΓ≡α∙ασ≥ ID ΩαΩ ≡στ≤δⁿ≥α≥ - ≤φΦΩαδⁿφ√Θ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ σ±δΦ ∩≡ ∞εσ ±εσΣΦφσφΦσ ± UIN ß√δε ≤±≥αφεΓδσφε, Φφα≈σ - 0. ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σ OnDirectPacketAck event ± ²≥Φ∞ ID.

    procedure RegisterNewUIN(const Password: String);
    ╟α≡σπΦ±≥≡Φ≡εΓα≥ⁿ φεΓ√Θ UIN, ∩α≡α∞σ≥≡ Password -- ²≥ε ∩α≡εδⁿ ± ΩαΩΦ∞ Γ√ ⌡ε≥Φ≥σ Φ±∩εδⁿτεΓα≥ⁿ φεΓ√Θ φε∞σ≡. ╧≡ε÷σΣ≤≡α Σεδµφα Φ±∩εδⁿτεΓα≥ⁿ±  ΩεπΣα Γ√ Γ ε⌠δαΘφσ(≥εßΦ°ⁿ εφα ±α∞α δεπΦφΦ≥ⁿ±  Φ Σσδασ≥ ≈≥ε φαΣε :). ┼±δΦ Γα∞ Γ√ΣσδΦδΦ φεΓ√Θ φε∞σ≡, ≥επΣα Γ√ ∩εδ≤≈Φ≥σ OnNewUINRegistered event, Φφα≈σ OnNewUINRefused event(φα∩≡Φ∞σ≡, ΩεπΣα Γ√ ⌡ε≥Φ≥σ ±δΦ°Ωε∞ ∞φεπε φε∞σ≡εΓ).

    procedure RequestAwayMsg(UIN: LongWord; ID: Word; ReqStatus: Byte);
    ╟α∩≡ε±Φ≥ⁿ αΓ≥ε-ε≥Γσ≥ UIN'α. ID - ±δ≤≈αΘφεσ τφα≈σφΦσ Ωε≥ε≡εσ ∩≡ΦΣσ≥ Γα∞ Γ ε≥Γσ≥α⌡ φα RequestAwayMsg. ReqStatus - ²≥ε ≥Φ∩ αΓ≥ε-ε≥Γσ≥α, ∞εµσ≥ ß√≥ⁿ εΣφΦ∞ Φτ:
    GET_AWAY, - τα∩≡ε±Φ≥ⁿ away αΓ≥ε-ε≥Γσ≥
    GET_OCCUPIED, - τα∩≡ε±Φ≥ⁿ occupied αΓ≥ε-ε≥Γσ≥
    GET_NA, - τα∩≡ε±Φ≥ⁿ NA αΓ≥ε-ε≥Γσ≥
    GET_DND, - τα∩≡ε±Φ≥ⁿ DND αΓ≥ε-ε≥Γσ≥
    GET_FFC - τα∩≡ε±Φ≥ⁿ FFC(Free For Chat) αΓ≥ε-ε≥Γσ≥.
    ─≡≤πΦ∞Φ ±δεΓα∞Φ ReqStatus -- ²≥ε ≥σΩ≤∙ΦΘ ±≥α≥≤± UIN'α.
    ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σOnAutoMsgResponse event.

    UnregisterUIN(const Password: String);
    ╤≥σ≡σ≥ⁿ ± δΦ÷α τσ∞δΦ Γα° UIN! ┴εΘ≥σ±ⁿ Φ±∩εδⁿτεΓα≥ⁿ ²≥≤ ∩≡ε÷σΣ≤≡≤, ≥.Ω. ∞εµφε φαΓ≡σΣΦ≥ⁿ ±α∞ε∞≤ ±σßσ :) Password -- ²≥ε Γα° ≥σΩ≤∙ΦΘ ∩α≡εδⁿ. ┼±δΦ ∩α≡εδⁿ Ωε≥ε≡√Θ Γ√ ∩σ≡σΣαδΦ ß≤Σσ≥ Ω≡ΦΓεΘ, ≥ε Γ√ ∩εδ≤≈Φ≥σ OnUnregisterBadPassword event, Φφα≈σ OnUnregisterOk event(Φ ß≤Σσ≥σ αΓ≥ε∞α≥Φ≈σ±ΩΦ ε≥Ωδ■≈σφ√ ε≥ ±σ≡Γσ≡α).

    procedure ChangePassword(const NewPassword: String);
    ╠σφ σ≥ ≥σΩ≤∙ΦΘ ∩α≡εδⁿ ∩εδⁿτεΓα≥σδ  φα NewPassword. ─εδµφε Γ±σ ²≥ε ∞σφ ≥±  ∩εΩα Γ√ Γ εφδαΘφσ. property Password: String ∩≡Φ ²≥ε∞ φσ Φτ∞σφ σ≥± (Γ√ Σεδµφ√ ²≥ε ±Σσδα≥ⁿ ±α∞ε±≥ε ≥σδⁿφε). ╧ε±δσ ≤±∩σ°φεΘ ±∞σφ√ ∩α≡εδ  Γ√ ∩εδ≤≈Φ≥σ OnChangePasswordOk event.

    function DirectConnectionEstabilished(UIN: LongWord): Boolean; (DC)
    ┬ετΓ≡α∙ασ≥ True σ±δΦ ∩≡Φ∞εσ ±εσΣΦφσφΦσ ± UIN ß√δε ≤±≥αφεΓδσφε.

    function SendContacts(UIN: LongWord; Contacts: TStringList): Word; (DC)
    ╧ε±√δασ≥ Ωεφ≥αΩ≥√ UIN'≤. ╩αµΣα  ±≥≡εΩα Contacts TStirngList Φ∞σσ≥ ±δσΣ≤■∙ΦΘ ⌠ε≡∞α≥:
    UIN ≈σδεΓσΩα=σπε NickName, NickName ∞εµσ≥ ß√≥ⁿ φσ≤Ωαταφ(∩≤±≥√∞).
    ┬ετΓ≡α∙ασ≥ ID ΩαΩ ≡στ≤δⁿ≥α≥ - ≤φΦΩαδⁿφ√Θ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ σ±δΦ ∩≡ ∞εσ ±εσΣΦφσφΦσ ± UIN ß√δε ≤±≥αφεΓδσφε, Φφα≈σ - 0. ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σ OnDirectPacketAck event ± ²≥Φ∞ ID.
    ╧≡Φ∞σ≡:

      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'≤.
    ┬ετΓ≡α∙ασ≥ ID ΩαΩ ≡στ≤δⁿ≥α≥ - ≤φΦΩαδⁿφ√Θ ΦΣσφ≥Φ⌠ΦΩα≥ε≡ σ±δΦ ∩≡ ∞εσ ±εσΣΦφσφΦσ ± UIN ß√δε ≤±≥αφεΓδσφε, Φφα≈σ - 0. ┬ ε≥Γσ≥ Γ√ ∩εδ≤≈Φ≥σ OnDirectPacketAck event ± ²≥Φ∞ ID.
    ╧≡Φ∞σ≡:

      procedure TMainForm.Button1Click(Sender: TObject);
      begin
        ICQClient1.RequestContacts(4024781, '╩Φφⁿ ∞φσ ∩α≡≤ Ωεφ≥αΩ≥εΓ ∩δτ :)');
      end;
      


    Events(╤εß√≥Φ )

    OnAddedYou(Sender: TObject; UIN: String)
    ┬√τ√Γασ≥± , ΩεπΣα UIN ΣεßαΓδ σ≥ Γα± Γ ±ΓεΘ Ωεφ≥αΩ≥ δΦ±≥.

    OnAdvancedMsgAck(Sender: TObject; UIN: String; ID: Word; AcceptType: Byte; AcceptMsg: String)
    ╬≥Γσ≥ φα SendMessageAdvanced procedure.
    ▌≥ε ∩εΣ≥Γσ≡µΣσφΦσ, ≈≥ε ∩εδⁿτεΓα≥σδⁿ ∩εδ≤≈Φδ Γα°σ ±εεß∙σφΦσ. ┼±δΦ ²≥ε ΦτΓσ∙σφΦσ φσ ∩εδ≤≈σφε, Γ√ ∞εµσ≥σ ∩ε±δα≥ⁿ Γ√°σ ±εεß∙σφΦσ σ∙σ ∩α≡≤ ≡ατ.
    ID - ±δ≤≈αΘφεσ τφα≈σφΦσ, Ωε≥ε≡εσ ß√δε ∩σ≡σΣαφε Γ SendMessageAdvanced procedure.
    AcceptType ∞εµσ≥ ß√≥ⁿ εΣφΦ∞ Φτ:
    ACC_NORMAL - φε≡∞αδⁿφε ∩≡Φφ ≥ε
    ACC_NO_OCCUPIED - φσ ∩≡Φφ ≥ε, occupied ±≥α≥≤±
    ACC_NO_DND - φσ ∩≡Φφ ≥ε, dnd ±≥α≥≤±
    ACC_AWAY - ∩≡Φφ ≥ε φε Γ away ±≥α≥≤±σ
    ACC_NA - ∩≡Φφ ≥ε, φε Γ na ±≥α≥≤±σ
    ACC_CONTACTLST - ∩≡Φφ ≥ε Γ contact list (φσ ∞Φπα≥ⁿ Γ ≥≡²σ)
    AcceptMsg - ²≥ε αΓ≥ε-ε≥Γσ≥, Γ≡εΣσ: "User is currently N/A. You can leave him/her a message".

    OnAutoMsgResponse(Sender: TObject; UIN: String; ID: Word; RespStatus: Byte; Msg: String);
    ╬≥Γσ≥ φα RequestAwayMsg procedure. ID & RespStatus ≥αΩΦσ µσ ΩαΩ Γ√ ∩σ≡σΣαΓαδΦ Γ RequestAwayMsg procedure, Msg -- ²≥ε ≥σΩ±≥ αΓ≥ε-ε≥Γσ≥α.

    OnChangePasswordOk(Sender: TObject);
    ╬≥Γσ≥ φα ChangePassword procedure. ╬τφα≈ασ≥, ≈≥ε Γα° ∩α≡εδⁿ ß√δ ≤±∩σ°φε Φτ∞σφσφ.

    OnConnectionFailed(Sender: TObject)
    ┬√τ√Γασ≥± , ΩεπΣα Γ√ φσ ∞εµσ≥σ ∩εΣΩδ■≈Φ≥ⁿ±  Ω ±σ≡Γσ≡≤ δΦßε ±σ≡Γσ≡ Γα± ε≥Ωδ■≈Φδ ∩ε Σ≡≤πΦ∞ ∩≡Φ≈Φφα∞.

    OnContactListRecv(Sender: TObject; UIN: String; ContactList: TStringList); (DC)
    ┬√τ√Γασ≥± , ΩεπΣα UIN ∩ε±√δσ≥ Γα∞ ±ΓεΦ Ωεφ≥αΩ≥√. ╩αµΣα  ±≥≡εΩα Γ ContactList Φ∞σσ≥ ±δσΣ≤■∙ΦΘ ⌠ε≡∞α≥: UIN ∩εδⁿτεΓα≥σδ =σπε NickName. ╧ε±δσ Φ±∩εδⁿτεΓαφΦ  ContactList TStringList Γ√ *Σεδµφ√* σπε ≤φΦ≈≥εµΦ≥ⁿ (ContactList.Free).

    OnContactListRequest(Sender: TObject; UIN, Reason: String); (DC)
    ┬√τ√Γασ≥±  ΩεπΣα UIN τα∩≡α°ΦΓασ≥ ≤ Γα± Ωεφ≥αΩ≥√, φσ ΣαΘ≥σ σ∞≤ ≤∞σ≡σ≥ⁿ ±ε ±Ω≤ΩΦ :)

    OnDirectPacketAck(Sender: TObject; ID: Word); (DC)
    ╬≥Γσ≥ φα δ■ßεΘ ε≥ε±δαφ√Θ ∩≡ ∞εΘ ∩αΩσ≥(SendMessageDirect, RequestContacts, Φ ≥Σ.), Ωε≥ε≡√Θ ß√δ ≤±∩σ°φε ∩εδ≤≈σφ Φ εß≡αßε≥αφ ICQ'σΘ Ωε≥ε≡εΘ Γ√ σπε ∩ε±√δαδΦ. ID = τφα≈σφΦσ Ωε≥ε≡εσ ΓετΓ≡α∙α■≥ DC (Direct Connection) ⌠≤φΩ÷ΦΦ.

    OnLogin(Sender: TObject)
    ┬√τ√Γασ≥±  ∩≡Φ ≤±∩σ°φε∞ δεπΦφσ.

    OnMessageRecv(Sender: TObject; Msg, UIN: String);
    ┬√τ√Γασ≥±  ∩≡Φ ∩εδ≤≈σφΦΦ ±εεß∙σφΦ  (≈σ≡στ ±σ≡Γσ≡ ΦδΦ φα∩≡ ∞≤■).

    OnNewUINRefused(Sender: TObject);
    ╬≥Γσ≥ φα RegisterNewUIN procedure. ╬τφα≈ασ≥, ≈≥ε ±σ≡Γσ≡ φσ ∞εµσ≥ Γ√ΣσδΦ≥ⁿ Γα∞ φε∞σ≡, ∞εµσ≥ Γ√ ⌡ε≥Φ≥σ Φ⌡ ±δΦ°Ωε∞ ∞φεπε ΦδΦ Σσδασ≥σ ²≥ε ±δΦ°Ωε∞ ≈α±≥ε? ;)

    OnNewUINRegistered(Sender: TObject; UIN: String);
    ╬≥Γσ≥ φα RegisterNewUIN procedure. ┬α∞ Γ√Σσδσφ φεΓ√Θ UIN, ∞εµσ≥σ ±∞σδε Φ±∩εδⁿτεΓα≥ⁿ σπε ∩≡Φ ±δσΣ≤■∙σ∞ δεπΦφσ.

    OnOfflineMsgRecv(Sender: TObject; Msg, UIN: String);
    ┬√τ√Γασ≥±  ΩεπΣα UIN ∩ε±δαδ ±εεß∙σφΦσ, ∩εΩα Γ√ ß√δΦ Γ ε⌠δαΘφσ.

    OnOfflineURLRecv(Sender: TObject; Description, URL, UIN: String);
    ┬√τ√Γασ≥±  ΩεπΣα URL ∩ε±δαδ ±εεß∙σφΦσ, ∩εΩα Γ√ ß√δΦ Γ ε⌠δαΘφσ.

    OnPktDirectParse(Sender: TObject; Buffer: Pointer; BufLen: Cardinal; Incoming: Boolean); (DC)
    ┬√τ√Γασ≥±  ΩαµΣ√Θ ≡ατ, ΩεπΣα TICQClient ∩ε±√δασ≥ ΦδΦ ∩εδ≤≈ασ≥ ΩαΩεΘ-δΦßε ∩αΩσ≥ ∩ε±δαφ√Θ ≈σ≡στ ∩≡ ∞εσ ±εσΣΦφσφΦσ. ╚±∩εδⁿτ≤σ≥±  εß√≈φε ≡ατ≡αßε≥≈ΦΩα∞Φ. ╧αΩσ≥√ ∞επ≤≥ ß√≥ⁿ °Φ⌠≡εΓαφ√∞Φ.

    OnPktParse(Sender: TObject; Buffer: Pointer; BufLen: Cardinal; Incoming: Boolean);
    ┬√τ√Γασ≥±  ΩαµΣ√Θ ≡ατ, ΩεπΣα TICQClient ∩ε±√δασ≥ ΦδΦ ∩εδ≤≈ασ≥ ΩαΩεΘ-δΦßε ∩αΩσ≥. ╚±∩εδⁿτ≤σ≥±  εß√≈φε ≡ατ≡αßε≥≈ΦΩα∞Φ.

    OnServerListRecv(Sender: TObject; SrvContactList: TList);
    ╬≥Γσ≥ φα RequestContactList procedure.
    ┬ Ωεφ÷σ Γ√ *εß τα≥σδⁿφε* Σεδµφ√ Γ√τΓα≥ⁿ DestroyUINList procedure ± ∩α≡α∞σ≥≡ε∞ = SrvContactList, Φφα≈σ ≤ Γα°σπε ∩≡ΦδεµσφΦ  ß≤Σ≤≥ ≤≥σ≈ΩΦ ∩α∞ ≥Φ. ╩αµΣ√Θ ²δσ∞σφ≥ SrvContactList'α ²≥ε ≤Ωατα≥σδⁿ φα ±δσΣ≤■∙≤■ ±≥≡≤Ω≥≤≡≤:

      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);
    ┬√τ√Γασ≥±  ΩεπΣα UIN Φτ Γα°σπε Ωεφ≥αΩ≥ δΦ±≥α ∞σφ σ≥ ±≥α≥α≥≤± ΦδΦ ΦΣσ≥ Γ εφδαΘφ. ╤≥α≥≤±√ ∞εµφε φαΘ≥Φ Γ property Status. ╥αΩ µσ ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ StatusToStr(Value: LongWord): String function Φτ ICQWorks.pas, ≈≥εß ±ΩεφΓσ≡≥Φ≡εΓα≥ⁿ Φτ ≈Φ±δεΓεπε ∩≡σΣ±≥αΓδσφΦ  ±≥α≥≤±α Γ ±≥≡εΩεΓεσ.

    OnUnregisterBadPassword(Sender: TObject);
    ╬≥Γσ≥ φα UnregisterUIN procedure. ╟φα≈Φ≥, ≈≥ε ∩α≡εδⁿ ∩σ≡σΣαφ√Θ Γ UnregisterUIN ß√δ φσΓσ≡φ√∞.

    OnUnregisterOk(Sender: TObject);
    ╬≥Γσ≥ φα UnregisterUIN procedure. ┬√τΓασ≥±  ΩαΩ ≥εδⁿΩε Γα° UIN ß√δ ±≥σ≡≥. ╧ε±δσ ²≥επε Γ√ ß≤Σσ≥σ αΓ≥ε∞α≥Φ≈σ±ΩΦ ε≥Ωδ■≈σφ√ ε≥ ±σ≡Γσ≡α.

    OnURLRecv(Sender: TObject; Description, URL, UIN: String);
    ┬√τ√Γασ≥±  ΩεπΣα Γ√ ∩εδ≤≈ασ≥σ URL (≈σ≡στ ±σ≡Γσ≡ ΦδΦ φα∩≡ ∞≤■).

    OnUserFound(Sender: TObject; UIN, Nick, FirstName, LastName, Email: String; Status: Word; Gender, Age: Byte; SearchComplete: Boolean);
    ╬≥Γσ≥ φα SearchByMail, SearchByUIN, SearchByName, SearchRandom, SearchWhitePages procedures. SearchComplete = TRUE, ΩεπΣα Γ√ ∩εδ≤≈ασ≥σ ∩ε±δσΣφσπε φαΘΣσφεπε ∩εδⁿτεΓα≥σδ (≥.σ. εΩεφ≈αφΦσ ±∩Φ±Ωα φαΘΣσφ√⌡ δ■ΣσΘ).

    OnUserGeneralInfo(Sender: TObject; UIN, NickName, FirstName, LastName, Email, City, State, Phone, Fax, Street, Cellular, Zip, Country: String; TimeZone: Byte; PublishEmail: Boolean);
    ╬≥Γσ≥ φα RequestInfo procedure. ╫≥εß√ ±ΩεφΓσ≡≥Φ≡εΓα≥ⁿ TimeZone Γ φε≡∞αδⁿφεσ ∩≡σΣ±≥αΓδσφΦσ(≥Φ∩α +2:00), Γ√ Σεδµφ√ ±Σσδα≥ⁿ ±δ≤Σ≤∙σσ:

      var
        S: String;
      <....>
      S := IntToStr(- ShortInt(TimeZone) div 2) + ':' + IntToStr(Abs(ShortInt(TimeZone) mod 2 * 30));
      

    OnUserInfoAbout(Sender: TObject; UIN, About: String);
    ╬≥Γσ≥ φα RequestInfo procedure.

    UserInfoBackground(Sender: TObject; UIN: String; Pasts, Affiliations: TStringList);
    ╬≥Γσ≥ φα RequestInfo procedure. ┼±δΦ ≤ Γα± Γ√τ√Γασ≥±  ²≥ε ±εß√≥Φσ, ≥επΣα Γ√ *εß τα≥σδⁿφε Σεδµφ√* ≡ατ≡≤°Φ≥ⁿ Pasts Φ Affiliations StringLists, ∩ε±δσ Φ⌡ Φ±∩εδⁿτεΓαφΦ (Pasts.Free; Affiliations.Free);

    OnInfoInterests(Sender: TObject; UIN: String; Interests: TStringList);
    ╬≥Γσ≥ φα RequestInfo procedure. ┼±δΦ ≤ Γα± Γ√τ√Γασ≥±  ²≥ε ±εß√≥Φσ, ≥επΣα Γ√ *εß τα≥σδⁿφε Σεδµφ√* ≡ατ≡≤°Φ≥ⁿ Interests StringList, ∩ε±δσ σπε Φ±∩εδⁿτεΓαφΦ (Interests.Free).

    OnUserInfoMore(Sender: TObject; UIN: String; Age: Word; Gender: Byte; HomePage: String; BirthYear, BirthMonth, BirthDay: Word; Lang1, Lang2, Lang3: String);
    ╬≥Γσ≥ φα RequestInfo procedure.

    OnUserInfoMoreEmails(Sender: TObject; UIN: String; Emails: TStringList);
    ╬≥Γσ≥ φα RequestInfo procedure. ┼±δΦ ≤ Γα± Γ√τ√Γασ≥±  ²≥ε ±εß√≥Φσ, ≥επΣα Γ√ *εß τα≥σδⁿφε Σεδµφ√* ≡ατ≡≤°Φ≥ⁿ Emails StringList, ∩ε±δσ σπε Φ±∩εδⁿτεΓαφΦ (Emails.Free).

    OnUserNotFound(Sender: TObject);
    ╬≥Γσ≥ φα SearchByMail, SearchByUIN, SearchByName, SearchRandom, SearchWhitePages procedures. ┬√τ√Γασ≥± , ΩεπΣα ≥αΩεΘ ∩εδⁿτεΓα≥σδⁿ φσ φαΘΣσφ.

    OnUserOffline(Sender: TObject; UIN: String);
    ┬√τ√Γασ≥±  ΩεπΣα UIN Φτ Γα°σπε δΦ±≥α ≤⌡εΣΦ≥ Γ ε⌠δαΘφ.

    OnUserWorkInfo(Sender: TObject; UIN, WCity, WState, WPhone, WFax, FAddress, WZip, WCountry, WCompany, WDepartment, WPosition, WOccupation, WHomePage: String);
    ╬≥Γσ≥ φα RequestInfo procedure.


    Contact info

    ╧ε±δσΣφΦσ εßφεΓδσφΦ  ∞εµφε φαΘ≥Φ Γ±σπΣα ∩ε αΣ≡σ±≤: http://www.cobans.net.
    ┼±δΦ Γ√ ⌡ε≥Φ≥σ ∩εδ≤≈α≥ⁿ email'√ εß εßφεΓδσφΦΦ TICQClient'α, ≥επΣα ∩Φ°Φ≥σ: mailto:alex@ritlabs.com?subject=join_ticqclient_update.
    ┼±≥ⁿ ΩαΩΦσ-δΦßε ∩≡σΣδεµσφΦ , ε°ΦßΩΦ, ∩εµσδαφΦ ? ╥επΣα ∩Φ°Φ≥σ: alex@ritlabs.com, ICQ: #4024781.
    ┼±δΦ Γ√ ⌡ε≥Φ≥σ Γ±≥≤∩Φ≥ⁿ Γ Ωδ≤ß ≡ατ≡αßε≥≈ΦΩεΓ TICQClient'α, ∩Φ°Φ≥σ ∞φσ!


    (C) 2002, ─σ∞≈σφΩε └δσΩ±αφΣ≡, ╠εδΣαΓΦ , ╩Φ°ΦφσΓ