[Delphi] THGG - problem z połączeniem

0

Mam problem... Piszę komunikator gg (taki tam dla edukacji :P) No i kiedy chcę się połączyć wywala błąd:
Project gadugadu.exe raised exception class EIdSocketError with message 'Socket Error # 10060 Connection timed out.'. Process stopped

Czy ktoś wie jak to zrobić, aby połączyło? Załączam kod:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, HGG,
  StdCtrls, jpeg, ExtCtrls, ComCtrls;

type
  TMainForm = class(TForm)
    HGG1: THGG;
    Numer: TEdit;
    Haslo: TEdit;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Polacz: TButton;
    StatusBar1: TStatusBar;
    procedure PolaczClick(Sender: TObject);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure NumerMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure HasloMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PolaczMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TMainForm.PolaczClick(Sender: TObject);
begin
HGG1.Number:=strtoint(numer.Text);
HGG1.Password:=haslo.Text;
HGG1.Connect;
HGG1.Status:=usAvailable;

HGG1.Connect;
if HGG1.Connected then MainProgram.Show
else NoConnectDlg.Show;
end;

procedure TMainForm.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      StatusBar1.SimpleText:='Taki biedny obrazek-ikona xD';
end;

procedure TMainForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      StatusBar1.SimpleText:='';
end;

procedure TMainForm.NumerMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      StatusBar1.SimpleText:='Podaj numer gg.';
end;

procedure TMainForm.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      StatusBar1.SimpleText:='Podaj numer gg.';
end;

procedure TMainForm.Label2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      StatusBar1.SimpleText:='Podaj hasło gg.';
end;

procedure TMainForm.HasloMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      StatusBar1.SimpleText:='Podaj hasło gg.';
end;

procedure TMainForm.PolaczMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
      StatusBar1.SimpleText:='Łączy... xP';
end;

end.

Proszę o pomoc... Przegooglowałem pół świata i nic nie znalazłem... :(

0

a host ustawiłeś ;) ?

0

ehm, ciekawie zrobiłeś podpowiedzi, ale Delphi już to ma gotowe
Hint - bodajże tu wbijasz tekst
AutoHint czy jakoś tak w StatusBar nakazuje mu obsługiwać ( wyświetlać na sobie ) podpowiedzi

0

procedure TMainForm.PolaczClick(Sender: TObject);
begin
HGG1.Number:=strtoint(numer.Text);
HGG1.Password:=haslo.Text;
HGG1.Connect;
HGG1.Status:=usAvailable;

HGG1.Connect;
if HGG1.Connected then MainProgram.Show
else NoConnectDlg.Show;
end;

Źle to wygląda. Pierwszy Connect nie zdąży się zrobić, a później robisz zmianę statusu i kolejny. Zastosuj Event'y lepiej.

0

W HGG ustaw host na jeden stąd:
http://www.kadu.net/monitor/
Oczywiście ma być online ; ]

Pozdrawiam,
Defozo

0

Dzięki za podpowiedzi :) Już doszedłem do tego, gdzie był sęk mego jakże poważnego błędu...

procedure TMainForm.PolaczClick(Sender: TObject);
begin
HGG1.Number:=strtoint(numer.Text);
HGG1.Password:=haslo.Text;
HGG1.Host:=HGG1.GetServerAddress;
HGG1.Connect;
HGG1.Status:=usAvailable;
if HGG1.Connected then begin
                            MainProgram.Show;
                            MainForm.Hide;
                       end
else NoConnectDlg.Show;
end;

Sami zobaczcie :P

0

Może i to zadziała.. ale dalej uważam, że złe podejście - zastosuj event'y lepiej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1