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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2009, 15:21   #11
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Форум просто меня не любит.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 03.11.2009, 15:58   #12
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Он не отвечает что делать?
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 03.11.2009, 18:27   #13
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Вот код
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)

    Edit1: TEdit;
    Edit2: TEdit;
    Label3: TLabel;
    Memo1: TMemo;
    Timer1: TTimer;
    Timer2: TTimer;
    ICQDb1: TICQDb;
    ICQClient1: TICQClient;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ICQClient1Login(Sender: TObject);
    procedure ICQClient1ConnectionFailed(Sender: TObject);
    procedure ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
    procedure Image1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
TKeyWord = record
key,answer : string;
end;

const AnswersCount  = 310;

var
  GeneratedFraza : string='';
  Answers : array [1..AnswersCount] of TKeyWord;
  Dialog : array [1..20] of string;
  Hi : array [1..7] of string;
  Form1: TForm1;
  rec:boolean;
implementation

{$R *.dfm}
function FindAnswer(text : string) : boolean;
var
i,count : integer;
ans : array [0..10] of integer;
begin
 count:=0;
 for i:=1 to AnswersCount do
 begin
 if Answers[i].key=text then
                        begin
                        ans[count]:=i;
                        inc(count);
                        end;
 end;
 if count<>0 then
 begin
 randomize;
 result:=true;
 GeneratedFraza:=Answers[ans[random(count)]].answer;
 end else result:=false;
end;

function LetAnswer(text : string):string;
var
i,found : integer;
slovo : string;
probel : boolean;
begin
slovo :='';
probel:=false;
found:=0;
 for i:=1 to length(text) do
   begin

   if text[i]=' ' then  probel:=true;
   if not probel then begin
   slovo:=slovo+text[i];
   if findanswer(lowercase(slovo)) then inc(found);
   end else begin slovo:=''; probel:=false; end;
   end;

if found=0 then
 result:=dialog[random(20)+1] else
 result:=GeneratedFraza;
end;


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

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.MaxLength:=9;
Edit2.MaxLength:=8;

Memo1.ReadOnly:=True;
Memo1.ScrollBars:=ssVertical;
Memo1.Lines.Clear; //удалить строку Memo1
Timer1.Enabled:=False;
Timer1.Interval:=110000;

end;

procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then //если соединение установлено
begin
Memo1.Lines.Add('Соединение с сервером установлено.'); //Добавляю в Memo1 строку о текущем положении
Timer1.Enabled := True; //Включаю таймер
end;
end;

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;

procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var
icq: cardinal;
begin
icq := StrToInt(UIN);
Memo1.Lines.Add(UIN + ': ' + Msg); //Добавляем полученное сообщение в Memo1
ICQClient1.SendMessage(icq,LetAnswer(lowercase(Msg)))
end;


procedure TForm1.Image1Click(Sender: TObject);
begin
if
  (Edit1.Text = '') or (Edit2.Text = '') or //пустые поля
  (Length(Edit1.Text) < 4) or (Length(Edit2.Text) < 3) //Если UIN меньше 5 символов и пароль меньше 3
then
 begin
  MessageDlg('Не правельно заполнены поля!',mtInformation,[mbOk],0); //Выводим сообщение об ошибке
  Exit
end
else
 begin
  Label3.Caption:='Приветствую тебя ' + Edit1.Text;
end;
rec := True; //Удачное соединение
ICQClient1.UIN := StrToInt(Edit1.Text); //забираем UIN
ICQClient1.Password := Edit2.Text; //забираем пароль
ICQClient1.Login(); //Соединяемся с сервером
Memo1.Lines.Add('Соединение с сервером ICQ...');
end;

procedure TForm1.Image2Click(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;

procedure TForm1.Edit1Change(Sender: TObject);
begin

end;

end.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 03.11.2009, 19:52   #14
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ох ужас. Про трассировку слышали?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 03.11.2009, 21:30   #15
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Слышал но не пойму что это такое
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 03.11.2009, 21:36   #16
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ставим брейк на первую строчку нужной функции, и когда он срабатывает жмём F7 и так по одной строчке продвигаемся.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 03.11.2009, 21:38   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это выполнение кода построчно, также с использованием бряков.
и наблюдение значений переменных.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.11.2009, 21:41   #18
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Ужас. Вот так люди программируют не зная как отлаживать программу(а соответственно не отлаживая). Советую прочитать книжку по DELPHI.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 03.11.2009, 21:59   #19
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Да не ругайся начальник но я все сделал как вы писали но ничего все равно после трасировки появляется окно CPU и все.Мож вы сами гляните зачем и мне мозг загружать и сибе объяснениями что такое трасировка
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 03.11.2009, 22:03   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

скиньте сорцы проекта.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ICQ бот Pavelok Общие вопросы Delphi 17 10.04.2009 18:51
ICQ бот UnD)eaD)Snake Фриланс 1 12.02.2009 21:02
icq бот на Delphi goodwin777 Работа с сетью в Delphi 4 20.06.2008 19:58
Icq бот PadonnoK Работа с сетью в Delphi 11 29.11.2007 12:42