Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > ICQClient


Автор: Port111 17.1.2009, 15:57
Здравствуйте. 
Использую в своей программе компонент ICQClient v1.34
Мне необходимо чтобы когда в программе происходило определенное действие отправлялось сообщение на мне на аську.
Но проблема в следующем, если программу запущенна в нескольких экземплярах одновременно или UIN отправили в тайм аут (если программу запускали много раз), то icqclient не коннектится ... тогда мне необходимо чтобы icqclient использовал для отправки другой UIN.
В связи с этим у меня несколько проблем:

1. Если хочу использовать событие OnError
Код

procedure ICQClient1Error(Sender: TObject; ErrorType: TErrorType;
      ErrorMsg: String);

то Delphi выдает ошибку [Error] Unit1.pas(72): Undeclared identifier: 'TErrorType'
Почему и как поправить?

2. Так как событие OnError я не могу использовать, то использую событие ICQClient1ConnectionFailed.
ТО есть если оно происходит мне надо подключиться под другим UIN'ом из списка.
Написал процедуру
Код

procedure TForm1.ICQEnter(icqclient :TICQClient);
begin
  case EnterUIN of
    0:
    begin
      icqclient.UIN:=111111;
      icqclient.Password:='123456';
      icqclient.Login(0);
    end;
    1:
    begin
      icqclient.UIN:=2222222;
      icqclient.Password:='123456';
      icqclient.Login(0);
    end;
    2:
    begin
      icqclient.UIN:=333333;
      icqclient.Password:='123456';
      icqclient.Login(0);
    end
    else
    begin
      icqclient.UIN:=4444444;
      icqclient.Password:='123456';
      icqclient.Login(0);
    end;
  end;
end;

и вызываю её в событии ICQClient1ConnectionFailed
Код

EnterUIN:=EnterUIN+1;
  ICQEnter(ICQClient1);


Для проверки, специально ложил первый UIN в тайм аут и запускал.
Происходит следующие: Событие ICQClient1ConnectionFailed срабатывает
EnterUIN увеличивается и становиться равным 1, потом выполняется кусок из case of
Код

1:
    begin
      icqclient.UIN:=2222222;
      icqclient.Password:='123456';
      icqclient.Login(0);
    end;

И всё и НЕ логиниться и НЕ вызывается событытия ICQClient1ConnectionFailed

Пожалуйста помогите...что не так?
Заранее спасибо

Автор: sneJok 22.1.2009, 18:48
Да бы не создавать дубль-тему, вопрос - Кто-нибуть знает, что изменилось в протоколе  ICQ от 21 января?

Автор: Matematik 22.1.2009, 23:42
sneJok, копай http://habrahabr.ru/blogs/im/49877/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)