Witam:)
Pomyślałem że pobawię się w pisanie własnego komunikatora opartego o GG i komponent HGG okazał się
bardzo kuszący aby coś na nim zbudować:). Skorzystałem z tego projekciku:
http://4programmers.net/Delphi/Gotowce/Bot_Gadu-Gadu
Wszystko by było OK, gdyby nie problem z odbieraniem wiadomości wysłanych z GG przez mój programik.
Inaczej mówiąc: zdarzenie "OnMessage" w ogóle nie występuje gdy wysyłam message zarówno z GG,
jak i z drugiej instancji mojego programu (oczywiście z innym numerem GG). Natomiast wiadomość
w drugą stronę, tzn. mój program->GG przychodzi na GG natychmiast. Czyli wygląda na to, że jest problem
tylko z odbiorem wiadomości.
I moje pytanie: czy ci z GG coś zmienili w swoim protokole i niezbędna jest jakaś korekta komponentu
HGG, czy może ja coś robię źle.
THGG v0.8 testowałem w środowiskach Delphi 7 Enterprise i BDS 2006. W obu zainstalowałem
(bezproblemowo) zalecane Indy v9.0.18.
Mój (wstępny) kod jest "typowy" dla obsługi komponentu THGG:
//-------------------------------------------------
// rozłączenie z serwerem
procedure TForm1.ButtonRozlaczClick(Sender: TObject);
begin
HGG1.Status:=usNotAvailable;
HGG1.Disconnect;
end;
//połączenie z serwerem
procedure TForm1.ButtonPolaczClick(Sender: TObject);
begin
HGG1.Number:=123456789; //tu mój numer
HGG1.Password:='haselko';
HGG1.Host:=HGG1.GetServerAddress;
HGG1.Port:=8074;
HGG1.status:= usAvailable;//ustawia status dostepny
HGG1.Connect(500);
end;
//wysłanie wiadomości
procedure TForm1.ButtonWyslijMsgClick(Sender: TObject);
begin
HGG1.SendMessage(StrToInt(EditNrGG.Text), EditWiadomosc.Text, []);
end;
//OnConnected
procedure TForm1.HGG1Connected(Sender: TObject);
begin
showmessage('podłączony');
end;
//OnDisconnected
procedure TForm1.HGG1Disconnected(Sender: TObject);
begin
showmessage('odłączony');
end;
//OnLogin
procedure TForm1.HGG1Login(Sender: TObject);
begin
showmessage('zalogowany');
end;
//OnMessage (to zdarzenie nie występuje po odebraniu wiad.)
procedure TForm1.HGG1Message(Sender: TObject; GGNumber: Integer;
MessageContent: String; MessageTime: TDateTime);
begin
Memo1.Lines.Add('Komunikat od '+IntToStr(GGNumber)+':
"'+MessageContent+'"');
end;
//-----------------------------------------
Przejrzałem archiwum tego forum i nie znalazłem rozwiązania akurat tego problemu.
Proszę o wskazówki, co jest nie tak.
Pzdr.:)
Marek