Показать сообщение отдельно

  #2  
Старый 24.03.2008, 18:10
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


По умолчанию

Вот исходник моего старого(простенького) бота ("Команды вводи сам")
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ICQClient,ICQWorks, XPMan, ExtCtrls, Menus, ComCtrls,
  jpeg;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    GroupBox2: TGroupBox;
    Edit5: TEdit;
    Label6: TLabel;
    ICQ: TICQClient;
    XPManifest1: TXPManifest;
    Timer1: TTimer;
    Label9: TLabel;
    Label10: TLabel;
    Menu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    Button6: TButton;
    GroupBox3: TGroupBox;
    Memo1: TMemo;
    CheckBox1: TCheckBox;
    Image1: TImage;
    GroupBox4: TGroupBox;
    Pop1: TPopupMenu;
    N9: TMenuItem;
    RANDOM1: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ICQLogin(Sender: TObject);
    procedure ICQConnectionFailed(Sender: TObject);
    procedure ICQMessageRecv(Sender: TObject; Msg, UIN: String);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses unit2;
type
ICQmsg=array [1..3] of string;
ICQFormat=object
uin:integer;
Msg:string;
end;
var
strokin:string;
ICQ_bufer:array [1..20] of ICQFormat;
MSGT:string;
LogFile:TextFile;
AnekdotFile:Textfile;
Comands:TextFile;
UinBaz:TextFile;
Drevo:Tlist;
{$R *.dfm}
function find_icq():byte;
var
  ch,chcol:byte;
begin
chcol:=0;
for ch:=1 to 10   do
  if ICQ_bufer[ch].uin<>0 then chcol:=chcol+1;
  find_icq:=chcol;
end  ;
procedure TRACE (txts:string);
begin
strokin:='>>'+' {'+txts+'}'+'!';
form1.Memo1.Lines.Add(strokin);
end;
procedure smsik (txts:string);
begin
form1.Memo1.Lines.Add(' <> '+txts);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i:byte;
begin
ICQ.ConvertToPlaintext:=true;
trace('Ожидаем...');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ICQ.UIN:=StrToInt(edit1.Text);
ICQ.Password:=edit2.Text;
ICQ.ICQServer:='login.icq.com';
ICQ.ICQPort:=5190;
icq.Status:=8;
ICQ.Login();
trace('Пробуем соединится...');
icq.Status:=8;
end;

procedure TForm1.ICQLogin(Sender: TObject);
begin
Form1.Enabled:=true;
trace('Подключились...');
Application.MessageBox('Мы удачно подключились!','Внимание! ICQ_BOT говорит:',48);

end;

procedure TForm1.ICQConnectionFailed(Sender: TObject);
begin
Form1.Enabled:=true;
Button1.Enabled:=true;
trace('Соеденение разорвано...');
Application.MessageBox('Мы не смогли соединится!','Внимание! ICQ_BOT говорит:',48);
end;

procedure TForm1.ICQMessageRecv(Sender: TObject; Msg, UIN: String);
var
i,j:byte;
begin
Memo1.Lines.Add('|| '+'['+UIN+']'+'  ='+' '+MSG);
ICQ.RequestInfo(StrToInt(UIN));
ICQ.SendAuthResponse(StrToInt(UIN),true,'yes');
for i:=1 to  20 do
        if ICQ_bufer[i].uin=0 then
          begin
          ICQ_bufer[i].uin:=strtoint(uin);
          ICQ_bufer[i].msg:='Privet';
          break;
          end;
timer1.Enabled:=true;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
trace('Выходим...');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
bufer:array [1..20] of ICQFormat;
i,j:byte;
begin
timer1.Interval:=StrToInt(edit5.Text);
for i:=1 to 20   do
  for j:=i+1 to 20   do
  begin
  if ICQ_bufer[i].uin=0 then
    begin
    bufer[i]:=ICQ_bufer[i];
    ICQ_bufer[i]:=ICQ_bufer[j];
    ICQ_bufer[j]:=bufer[i];
    end;
  end;
  if find_icq=0 then
  begin
  timer1.Enabled:=false;
  exit;
  end;
label9.Caption:=inttostr(find_icq);
icq.SendMessage(ICQ_bufer[1].uin,ICQ_Bufer[1].msg);
ICQ_bufer[1].uin:=0;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
icq.Status:=1;
button6.Caption:='Отошел';
end;

procedure TForm1.N2Click(Sender: TObject);
begin
icq.Status:=2;
button6.Caption:='Не беспокоить';
end;

procedure TForm1.N3Click(Sender: TObject);
begin
icq.Status:=4;
button6.Caption:='Недоступен';
end;

procedure TForm1.N4Click(Sender: TObject);
begin
icq.Status:=8;
button6.Caption:='В сети';{ICQ.SendMessage(StrToInt(edit3.Text),edit4.Text);
Trace('Бот отправил сообщение'+' '+'['+edit3.Text+']');}
end;

procedure TForm1.N5Click(Sender: TObject);
begin
icq.Status:=16;
button6.Caption:='Занят';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
menu1.Popup(mouse.CursorPos.X,mouse.CursorPos.y);
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if
form1.ClientHeight=462 then
form1.ClientHeight:=346 else
form1.ClientHeight:=462;
end;

end.
Думаю разберешься - ЭТО так сказать "скелет" простенького бота

Последний раз редактировалось De-visible; 24.03.2008 в 18:13..
 
Ответить с цитированием