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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2007, 03:10   #1
PadonnoK
Пользователь
 
Регистрация: 20.11.2007
Сообщений: 12
По умолчанию Icq бот

прива всем ! вот решил написать на делфи бота,и возникла трабл:Кто знает как написать чтоб Label отображал статус соединения,например если я ввожу все данные правильно пасс и логин то в Label былоб написано в сети , а если нет то не в сети !!Помогите кто может заранее спс=)
PadonnoK вне форума Ответить с цитированием
Старый 29.11.2007, 03:50   #2
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

ну в событии он коннект выводи в лабель текст подключенно а при дисконнект выводи отключено
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 29.11.2007, 10:23   #3
PadonnoK
Пользователь
 
Регистрация: 20.11.2007
Сообщений: 12
По умолчанию

Цитата:
Сообщение от KORN Посмотреть сообщение
ну в событии он коннект выводи в лабель текст подключенно а при дисконнект выводи отключено
вот код посмари пж чё не так, вроде конект это LoggedIn насколько я знаю вот только правильно это или нет?


unit Unit1;

interface

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

type
TForm1 = class(TForm)
ICQClient1: TICQClient;
VxodButton1: TButton;
UINEdit1: TEdit;
PassEdit2: TEdit;
ExitButton2: TButton;
Label1: TLabel;
Timer1keepAlive: TTimer;
procedure VxodButton1Click(Sender: TObject);
procedure ExitButton2Click(Sender: TObject);
procedure ICQClient1Login(Sender: TObject);
procedure Timer1keepAliveTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.VxodButton1Click(Sender: TObject);
begin
IcqClient1.UIN:=StrToInt(UINEdit1.T ext); // вводим номер аси
IcqClient1.Password:=PASSEdit2.Text ; // вводим пасс аси


ICQClient1.ConvertToPlaintext:=true ; // чтоб конвертировалось в тект формат


Icqclient1.Login(0); // подключение к серверу

VxodButton1.Enabled:=false;
UINEdit1.Enabled:=false;


end;

procedure TForm1.ExitButton2Click(Sender: TObject);
begin
icqclient1.Disconnect;// отключение от сервера
Label1.Caption:='Не в сети' ;
VxodButton1.Enabled:=True;
end;

procedure TForm1.ICQClient1Login(Sender: TObject); // во тут ненаю как точно
begin
if ICQClient1.LoggedIn then
begin

Label1.Caption :='В сети';
Timer1KeepALive.Enabled := True;
end;
end;

procedure TForm1.Timer1keepAliveTimer(Sender: TObject);
begin
IcqClient1.SendKeepAlive;
end;

end.
PadonnoK вне форума Ответить с цитированием
Старый 29.11.2007, 10:40   #4
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

[procedure TForm1.ICQClient1Login(Sender: TObject); // во тут ненаю как точно
begin
if ICQClient1.LoggedIn then
begin
Label1.Caption :='В сети';
Timer1KeepALive.Enabled := True;
end;
end;[/QUOTE]

Вот здесь проверка абсолютна не нужна! Это событие итак указывает что компонент приконектился, а не проходит может быть потому что он только потом этой переменной присваивает значение true.
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок

Последний раз редактировалось OrdJONY; 29.11.2007 в 11:04.
OrdJONY вне форума Ответить с цитированием
Старый 29.11.2007, 11:01   #5
PadonnoK
Пользователь
 
Регистрация: 20.11.2007
Сообщений: 12
По умолчанию

Цитата:
Сообщение от OrdJONY Посмотреть сообщение
[procedure TForm1.ICQClient1Login(Sender: TObject); // во тут ненаю как точно
begin
if ICQClient1.LoggedIn then
begin
Label1.Caption :='В сети';
Timer1KeepALive.Enabled := True;
end;
end;QUOTE]

Вот здесь проверка абсолютна не нужна! Это событие итак указывает что компонент приконектился, а не проходит может быть потому что он только потом этой переменной присваивает значение true.

А как надо ? чёт я не фтыкаю=(
PadonnoK вне форума Ответить с цитированием
Старый 29.11.2007, 11:08   #6
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

procedure TForm1.ICQClient1Login(Sender: TObject); // во тут ненаю как точно
begin
Label1.Caption :='В сети';
Timer1KeepALive.Enabled := True;
end;
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 29.11.2007, 11:09   #7
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

это при конекте, на событие OnLogin
Код:
KeepAliveTimer.Enabled := True;  
StatusLabel.Caption := 'В Сети';
  Login_Btn.Caption := 'Отсоелинится';
  LoginEdit.Enabled := False;
  PassEdit.Enabled :=  False;
;
а на OnConnectionFailed вот такое:
Код:
 KeepAliveTimer.Enabled := False;
  StatusLabel.Caption := 'Не в сети';
  LoginEdit.Enabled := True;
  PassEdit.Enabled  := True;
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 29.11.2007, 11:13   #8
PadonnoK
Пользователь
 
Регистрация: 20.11.2007
Сообщений: 12
По умолчанию

Цитата:
Сообщение от KORN Посмотреть сообщение
procedure TForm1.ICQClient1Login(Sender: TObject); // во тут ненаю как точно
begin
Label1.Caption :='В сети';
Timer1KeepALive.Enabled := True;
end;
всмысле не знаю правильно или нет?
PadonnoK вне форума Ответить с цитированием
Старый 29.11.2007, 11:18   #9
PadonnoK
Пользователь
 
Регистрация: 20.11.2007
Сообщений: 12
По умолчанию

Цитата:
Сообщение от OrdJONY Посмотреть сообщение
это при конекте, на событие OnLogin
Код:
KeepAliveTimer.Enabled := True;  
StatusLabel.Caption := 'В Сети';
  Login_Btn.Caption := 'Отсоелинится';
  LoginEdit.Enabled := False;
  PassEdit.Enabled :=  False;
;
а на OnConnectionFailed вот такое:
Код:
 KeepAliveTimer.Enabled := False;
  StatusLabel.Caption := 'Не в сети';
  LoginEdit.Enabled := True;
  PassEdit.Enabled  := True;
Вот исправил ток ни чё не изменилось=(

unit Unit1;

interface

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

type
TForm1 = class(TForm)
ICQClient1: TICQClient;
VxodButton1: TButton;
UINEdit1: TEdit;
PassEdit2: TEdit;
ExitButton2: TButton;
Label1: TLabel;
Timer1keepAlive: TTimer;
procedure VxodButton1Click(Sender: TObject);
procedure ExitButton2Click(Sender: TObject);
procedure ICQClient1Login(Sender: TObject);
procedure Timer1keepAliveTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.VxodButton1Click(Sender: TObject);
begin
IcqClient1.UIN:=StrToInt(UINEdit1.T ext); // ââîäèì íîìåð àñè
IcqClient1.Password:=PASSEdit2.Text ; // ââîäèì ïàññ àñè


ICQClient1.ConvertToPlaintext:=true ; // ÷òîá êîíâåðòèðîâàëîñü â òåêò ôîðìàò


Icqclient1.Login(0); // ïîäêëþ÷åíèå ê ñåðâåðó

VxodButton1.Enabled:=false;
UINEdit1.Enabled:=false;


end;

procedure TForm1.ExitButton2Click(Sender: TObject);
begin
icqclient1.Disconnect;// îòêëþ÷åíèå îò ñåðâåðà
Label1.Caption:='Íå â ñåòè' ;
VxodButton1.Enabled:=True;
end;

procedure TForm1.ICQClient1Login(Sender: TObject);
begin

Timer1KeepAlive.Enabled := True;
Label1.Caption:= ' Â ñåòè ' ;

end;

procedure TForm1.Timer1keepAliveTimer(Sender: TObject);
begin
IcqClient1.SendKeepAlive;
end;

end.
PadonnoK вне форума Ответить с цитированием
Старый 29.11.2007, 11:21   #10
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

тока теперь лишней писанины нету.... а так все правильно... а че у тя ща не меняется надпись7

как часто у тя клиент посылает IcqClient1.SendKeepAlive7
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Ответ


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