Хочу, представляю вашему вниманию урок, по созданию ICQ бота на
delphi. Да, кстати наш бот будет не простой, он сможет
самостоятельно обучаться ответам. Итак, для данного урока нам понадобятся
следующие компоненты:
TICQClient – основа программы (не стандартный компонент)
Edit1 – в нём будем вписывать свой UIN
Edit2 – в нём будем вписывать свой Пароль
Label1 – в нём будет отображаться статус
Label2 – поставьте в нем заголовок «UIN»
Label3 - поставьте в нем заголовок «Пароль»
ListBox1 – для отображения принятых сообщений
Memo1 – ответы на которые будет отвечать бот
Ну что ж давайте начинать:
1. Создадим процедуру
FormCreate и пропишем свойства некоторых
компонентов.
procedure TForm1.FormCreate(Sender: TObject);
begin
Button2.Enabled:=false; // Блокируем кнопку №2
label3.Font.Color:=clRed; // Меняем цвет label'а на красный
label3.Caption:='ОффЛайн'; // Меняем заголовок label'а
memo1.Lines.Clear; // чистим memo
memo1.Lines.LoadFromFile('Ответы Бота.txt'); // загружаем ответы бота
end;
2. Создадим процедуру
Button1Click и пропишем там следующий
код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ICQClient1.UIN:=strtoint(edit1.Text); // UIN
ICQClient1.Password:=edit2.Text; // Пароль
ICQClient1.Login(); // Подключаемся
end;
//В edit1 будем вводить свой UIN, а в edit2 пароль
3. Создаём процедуру
ICQClient1Login
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then // если подключились то
label3.Caption:='ОнЛайн'; // меняем статус в label
label3.Font.Color:=clGreen; // меняем цвет текста в label
Button1.Enabled:=false; // Блокируем кнопку №1
Button2.Enabled:=true; // Разблокируем кнопку №2
end;
4. По клику
Button2Click мы будем отключаться
procedure TForm1.Button2Click(Sender: TObject);
begin
button1.Enabled:=true; // Разблокируем копку №1
button2.Enabled:=false; // Блокируем копку №2
ICQClient1.LogOff; // Отключаемся
label1.Font.Color:=clRed; // Меняем цвет label'а на красный
label1.Caption:='ОффЛайн' // Меняем заголовок
end;
5. Создаем процедуру ICQClient1MessageRecv
– основная часть программы
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var
ICQ: Cardinal;
i: integer;
// объявим переменные
begin
randomize;
i:=random(Memo1.Lines.Count-1);
// функция рандома позволяет отвечать на сообщения в разброс
ListBox1.Items.Add(UIN + ': ' + Msg); // добавим сообщение в ListBox1
memo1.Lines.Add(msg); // запомним фразу которую нам прислали
ICQClient1.SendMessage(StrToInt(UIN), ''+ memo1.Lines.strings[i] +'');
// Ответы на него
ListBox1.Items.Add('Бот: ' + memo1.Lines.Strings[i] +'');
// Добавим сообщение отправленное ботом в ListBox1
end;
6. ICQClient1Error – процедура
выдающая ошибки при подключении, Не забудьте добавить
ICQWorks в uses.
procedure TForm1.ICQClient1Error(Sender: TObject; ErrorType: TErrorType;
ErrorMsg: String);
begin
ShowMessage('Ошибка: ' + ErrorMsg);
end;
7. Завершающая процедура
FormClose.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
memo1.Lines.SaveToFile('Ответы Бота.txt'); // Сохраним ответы бота в файл
end;
end.
Вот и в принципе и всё, наш простенький ICQ бот готов !
Скачать исходник
|