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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 12:18   #1
snr93
Новичок
Джуниор
 
Регистрация: 23.07.2012
Сообщений: 2
Вопрос Delphi7. TICQClient v1.35. Проблемы. Код

Добрый день. Помогите кто может с кодом. 2 день сижу и ничего не получается. Нужно написать бота. Смысл: боту пишется слово "привет", он отвечает "здорово", ну и так далее. Вот что у меня есть:
Код:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ICQDb, ICQClient, StdCtrls, ICQWorks;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ICQClient1: TICQClient;
    ICQDb1: TICQDb;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ICQClientMessageRecv(Sender: TObject; Msg, UIN: String);
     private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ICQClient1.UIN := 637198656;
ICQClient1.Password := 'password***';
ICQClient1.XStatus := 12;
ICQClient1.Login(S_ONLINE + S_ALLOWDAUTH, false);
Timer1.Enabled:= true
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
ICQClient1.SendKeepAlive
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ICQClient1.LogOff
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if ICQClient1.LoggedIn then //проверяем, в онлайне ли мы
ICQClient1.SendMessage(7624084,'Привет') //сначала UIN , а потом текст сообщения
Else
Showmessage('Войди в онлайн!'); //если мы не подключены
end;

procedure TForm1.ICQClientMessageRecv(Sender: TObject; Msg, UIN: String);
var
s: string;
st: tstrings;
begin
s:=Msg; //присваиваем переменной s текст который пришёл от клиента
{--------------------------------------------------------------}
if s='hi' then //Что прислали
 begin
   ICQClient1.SendMessage(7624084, 'hello'); //что отвечаем
 end;
{--------------------------------------------------------------}

end;
end.

Все конектится, сообщение о включении присылает, но слово Привет игнорирует полностью. Использую компонент "царя". Вот ССЫЛКА . Компонент использую версии 1.35

Последний раз редактировалось snr93; 10.10.2012 в 12:36.
snr93 вне форума Ответить с цитированием
Старый 10.10.2012, 13:20   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

ну на привет оно и не будет реагировать только на hi притом в нижнем регистре
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 10.10.2012, 13:36   #3
snr93
Новичок
Джуниор
 
Регистрация: 23.07.2012
Сообщений: 2
По умолчанию re

код просто был немного переделан, он и на hi не реагирует.
snr93 вне форума Ответить с цитированием
Старый 10.10.2012, 15:17   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
код просто был немного переделан, он и на hi не реагирует.
ну и откуда нам знать, что и как Вы переделали?!!

для начала ставьте точку останова на строчку:
Цитата:
Код:
  s:=Msg; //присваиваем переменной s текст который пришёл от клиента
проверяйте.
1-е. что вообще обработчик ICQClientMessageRecv корректно назначен и вызывается при приёме сообщения.

2-е. смотрите, что попадает в переменную s

делайте выводы, исправляйте найденные косяки...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.10.2012, 15:29   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Последний раз работал с этим компонентом полгода назад, помню с 1.35 у меня были какие-то проблемы (какие уже не помню, но кажется что-то с коннектом связано), поэтому вернулся на 1.34.
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Код программы в Delphi7 Ксюнястудент Помощь студентам 4 04.05.2012 22:53
Код печати в Delphi7 Анна53 Помощь студентам 3 30.04.2011 15:24
unable to rename 'C:\ProgramFiles\Borland\Delphi7\Bi n\Delphi32.$$$' to 'C:\Program Files\Borland\Delphi7\ KazBoy Помощь студентам 1 12.04.2011 18:07
Проблемы с icq ботом с TICQClient rust-02 Работа с сетью в Delphi 6 26.12.2010 18:26
TICQClient __@cmd@__ Компоненты Delphi 3 20.08.2009 16:03