Хочу, представляю вашему вниманию урок, по созданию 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; // Пароль
ICQClie
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;
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.
он ошибку выдает при компиляции
3915 строка do Buffer [(NChar-1) xor 1]:=aString [NChar];
там в теме где качал написано что то, но я не понял(
помогите пожалуйста, очень нужно)