Суббота, 05.12.2020, 01:38 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Anton93, Волк-1024, xXxSh@dowxXx  
delphicode » Delphi » Программы на Delphi » ICQ для новичков (Основное)
ICQ для новичков
dolphinДата: Суббота, 17.01.2009, 22:31 | Сообщение # 1
Администратор
Сообщений: 906
Статус: Offline
=========================
Устанавливаем свойства компонентов
=========================
Label1.Caption - "UIN:"
Label2.Caption - "Пароль:"
Edit1.Text/Edit2.Text - ""
Edit1.MaxLength - 9
Edit2.MaxLength - 8
Button1.Caption - "Вход"
Button2.Caption - "Выход"
Memo1.ReadOnly - True
Memo1.ScrollBars - ssVertical
Memo1.Lines - удалить строку Memo1
Timer1.Enabled - False
Timer1.Interval - 110000
ICQClient1.ConvertToPlaintext - True

===================
Соединение с сервером ICQ
===================
Создаем событие OnClick на Button1. Пишем процедуру обработки события:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Проверка правельности заполнения полей
if (Edit1.Text = '') or (Edit2.Text = '') or
(Length(Edit1.Text) < 5) or (Length(Edit2.Text) < 3)
then
begin
MessageDlg('Не правельно заполнены поля!',mtInformation,[mbOk],0);
Exit;
end;
rec := True; //Это глобальная переменная (которую кстати нужно определить). Нужна для различия неудачного соединения и разъединения
ICQClient1.UIN := StrToInt(Edit1.Text);
ICQClient1.Password := Edit2.Text;
ICQClient1.Login(); //Соединяемся с сервером
Memo1.Lines.Add('Соединение с сервером ICQ...');
end;

===============
Проверка соединения
===============
Создаем событие OnLogin для ICQClient1.
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
//Если соединились, то добовляем соответстующее сообщение в Memo1
if ICQClient1.LoggedIn then
begin
Memo1.Lines.Add('Соединение с сервером установлено.');
Timer1.Enabled := True;
end;
end;

====================
Если не удалось соединиться
====================
Создаем событие OnConnectionFailed для ICQClient1.
procedure TForm1.ICQClient1ConnectionFailed(Sender: TObject);
begin
if not rec then Exit; //Если мы нажали на кнопку "Выход", то не нужно пытаться соединиться
Memo1.Lines.Add('Не удалось соединиться с сервером.');
if MessageDlg('Попытаться соединиться еще раз?',mtInformation,[mbOk,mbCancel],0) = mrOk
then
begin
ICQClient1.Login();
Memo1.Lines.Add('Соединение с сервером ICQ...');
end;
end;

==============
Посылаем KeepAlive
==============
Создаем событие OnTimer для Timer1.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ICQClient1.SendKeepAlive;
end;
Отсылать KeepAlive нужно каждые 2 минуты, чтобы чтобы сервер помечал нас как online. Вот для этого и нужен таймер.

==================
Разъединяемся с сервером
==================
Создаем событие OnClick на Button2.
procedure TForm1.Button2Click(Sender: TObject);
begin
if not ICQCLient1.LoggedIn then
MessageDlg('Соединение с сервером не установлено!',mtInformation,[mbOk],0)
else
begin
rec := False;
ICQCLient1.Disconnect;
Memo1.Lines.Add('Соединение с сервером оборвано.');
Timer1.Enabled := False;
end;
end;

========================
Обработка полученных сообщений
========================
Создаем событие OnMessageRecv для ICQClient1.
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var
icq: cardinal;
begin
icq := StrToInt(UIN);
Memo1.Lines.Add(UIN + ': ' + Msg); //Добавляем полученное сообщение в Memo1
ICQClient1.SendMessage(icq,'Привет'); //Отсылаем ответ
end;

Вот теперь скелет


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
livorДата: Среда, 04.03.2009, 17:01 | Сообщение # 2
Группа: Удаленные



Это полная сборка аськи для новичков или нет! cool

Сообщение отредактировал livor - Среда, 04.03.2009, 19:34
 
dolphinДата: Суббота, 07.03.2009, 12:52 | Сообщение # 3
Администратор
Сообщений: 906
Статус: Offline
Самое основное так скажем))

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
JawДата: Понедельник, 06.04.2009, 16:23 | Сообщение # 4
Участник
Зарегистрирован: 09.03.2009
Группа: Пользователи
Сообщений: 70
Статус: Offline
Code
rec := True; //Это глобальная переменная (которую кстати нужно определить). Нужна для различия неудачного соединения и разъединения

Как ее определить?
 
dolphinДата: Понедельник, 06.04.2009, 21:12 | Сообщение # 5
Администратор
Сообщений: 906
Статус: Offline
В разделе глобальных переменных (var)

Пишем

Code

rec:boolean;


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
CapsssДата: Вторник, 25.01.2011, 19:22 | Сообщение # 6
Новичок
Зарегистрирован: 25.01.2011
Группа: Пользователи
Сообщений: 2
Статус: Offline
как добавить в бота например "новости спорта"?)
 
CapsssДата: Вторник, 25.01.2011, 20:18 | Сообщение # 7
Новичок
Зарегистрирован: 25.01.2011
Группа: Пользователи
Сообщений: 2
Статус: Offline
сори)думал это бот)
 
jawa250tДата: Среда, 02.02.2011, 17:38 | Сообщение # 8
Группа: Удаленные



Никак не могу найти в Делфи 7 компонент ICQClient1, где он находится, в какой вкладке?? может у меня зрение пропадает))
 
dolphinДата: Среда, 02.02.2011, 17:55 | Сообщение # 9
Администратор
Сообщений: 906
Статус: Offline
Вкладка Samples

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
delphicode » Delphi » Программы на Delphi » ICQ для новичков (Основное)
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2020 Хостинг от uCoz