Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2011, 12:49   #1
ivannes
Пользователь
 
Аватар для ivannes
 
Регистрация: 16.06.2011
Сообщений: 42
Вопрос IcqClient - КАК с ним работать??

Привет всем! Помогите ослить принципы работы с IcqClient - Либой для работы с протоколом icq
Помог? тогда жми на весы
Девушка что оператор мобильной связи, когда денег нет, то она не доступна ©Радио Маяк
ivannes вне форума Ответить с цитированием
Старый 16.06.2011, 19:07   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вот простой пример чатбота, который отвечает время (писалось в delphi 2010):
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ICQClient, icqworks, StdCtrls, ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    icq: TICQClient;
    Button1: TButton;
    RichEdit1: TRichEdit;
    Timer1: TTimer;
    ListBox1: TListBox;
    procedure icqLogin(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure icqMessageRecv(Sender: TObject; Msg, UIN: RawByteString);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure icqConnectionFailed(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure icqUserGeneralInfo(Sender: TObject; UIN, NickName, FirstName,
      LastName, Email, City, State, Phone, Fax, Street, Cellular, Zip,
      Country: RawByteString; TimeZone: Byte; PublishEmail: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  icq.Login(S_ONLINE, false);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RichEdit1.Clear;
  icq.UIN := {требуемый логин};
  icq.Password := {пароль от аккаунта};
  Timer1.OnTimer(self);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  icq.Disconnect;
end;

procedure TForm1.icqConnectionFailed(Sender: TObject);
begin
  caption := 'Соединение разорвано';
end;

procedure TForm1.icqLogin(Sender: TObject);
begin
  if icq.LoggedIn then
  begin
    caption := 'Соединение установлено';
  end;
end;

procedure TForm1.icqMessageRecv(Sender: TObject; Msg, UIN: RawByteString);
begin
  if pos('!time', AnsiLowerCase(Msg)) = 1 then
  begin
    listbox1.Items.Append(datetimetostr(now));
    icq.RequestInfo(strtoint(UIN));
    icq.SendMessage(strtoint(UIN), timetostr(now));
  end;
end;

procedure TForm1.icqUserGeneralInfo(Sender: TObject; UIN, NickName, FirstName,
  LastName, Email, City, State, Phone, Fax, Street, Cellular, Zip,
  Country: RawByteString; TimeZone: Byte; PublishEmail: Boolean);
begin
  listbox1.Items[listbox1.Items.Count - 1] := listbox1.Items[listbox1.Items.Count - 1] + ' ' + LastName + ' ' + FirstName+ ' ' + 'спросил(а) время';
    {first - имя; last - фамилия}
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if NOT icq.LoggedIn then
    icq.Login(S_ONLINE, false);
end;

end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 17.06.2011, 09:12   #3
ivannes
Пользователь
 
Аватар для ivannes
 
Регистрация: 16.06.2011
Сообщений: 42
По умолчанию

спс. а можно исходник для delphi7?
Помог? тогда жми на весы
Девушка что оператор мобильной связи, когда денег нет, то она не доступна ©Радио Маяк
ivannes вне форума Ответить с цитированием
Старый 17.06.2011, 18:50   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Я посмотрел исходник для delphi 7, он такой же)
Попробуйте предыдущий откомпилировать.
Если что-то не заработает, то будем разбираться.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.06.2011, 03:32   #5
ivannes
Пользователь
 
Аватар для ivannes
 
Регистрация: 16.06.2011
Сообщений: 42
По умолчанию

не коомпилируется выводит целый ворох ошибок
PHP код:
[ОшибкаUnit1.pas(20): Undeclared identifier'RawByteString'
[ОшибкаUnit1.pas(21): Overloaded procedure 'FormCreate' must be marked with the 'overload' directive
[ОшибкаUnit1.pas(22): Overloaded procedure 'FormDestroy' must be marked with the 'overload' directive
[ОшибкаUnit1.pas(44): Undeclared identifier'icq'
[ОшибкаUnit1.pas(50): Undeclared identifier'icq'
[ОшибкаUnit1.pas(51): Missing operator or semicolon
[ОшибкаUnit1.pas(57): Undeclared identifier'icq'
[ОшибкаUnit1.pas(65): Undeclared identifier'icqLogin'
[ОшибкаUnit1.pas(67): Undeclared identifier'icq'
[ОшибкаUnit1.pas(69): Undeclared identifier'caption'
[ОшибкаUnit1.pas(78): Undeclared identifier'icq'
[ОшибкаUnit1.pas(79): Missing operator or semicolon
[ОшибкаUnit1.pas(79): Incompatible types'Cardinal' and 'String'
[ОшибкаUnit1.pas(87): Incompatible types
[ОшибкаUnit1.pas(93): Undeclared identifier'icq'
[ОшибкаUnit1.pas(98): Statement expected but end of file found
[ОшибкаUnit1.pas(21): Unsatisfied forward or external declaration'TForm1.FormCreate'
[ОшибкаUnit1.pas(22): Unsatisfied forward or external declaration'TForm1.FormDestroy'
[Фатальная ОшибкаProject1.dpr(5): Could not compile used unit 'Unit1.pas' 
Помог? тогда жми на весы
Девушка что оператор мобильной связи, когда денег нет, то она не доступна ©Радио Маяк
ivannes вне форума Ответить с цитированием
Старый 18.06.2011, 15:21   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

По порядку.
Сначала нужно на форму кинуть все компоненты (которые прописаны в tform1).
Затем у появившихся компонентов создать требуемые события (кликаем по компоненту на форме, выбираем в инспекторе объектов (справа) вкладку Events, ищем события, которые указаны в исходнике, кликаем двойным кликом по ним и туда вписываем сам код).
Сделайте это и попробуйте еще раз скомпилировать (ошибки сюда).
ПС А вы сам ticqclient установили?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 19.06.2011, 04:05   #7
ivannes
Пользователь
 
Аватар для ivannes
 
Регистрация: 16.06.2011
Сообщений: 42
По умолчанию

ну я его так установил
Код:
компонент для работы с ICQ протоколом 
 для работы демок нужно сделать слудующее: 
 Project -> Options 
 Закладка Directories/Conditionals 
 3) -> Units output directory: Units 
 -> Search path: ICQClien
Помог? тогда жми на весы
Девушка что оператор мобильной связи, когда денег нет, то она не доступна ©Радио Маяк
ivannes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBPivotGrid как с ним работать? enjo БД в Delphi 1 13.04.2013 11:14
DBimage как с ним работать delfin07 БД в Delphi 1 18.05.2011 10:37
jvhtmlparser - как с ним работать? Dionix Помощь студентам 0 12.07.2010 22:05
ImageList как с ним работать Anatoly555 Общие вопросы Delphi 6 14.04.2010 13:40
TIdSimpleServer как с ним работать? isergey Работа с сетью в Delphi 1 23.02.2009 07:38