Ja jak się bawiłem THGG to aby wiadomości zaczeły dochodzić wysyłałem sam do siebie po połączeniu jakąś
losową wiadomość aż do skutku kiedy coś do mnie przyjdzie i sprawdzam to w zdarzeniu, czyli przykładowo:
// ...
public
GG : THGG;
DzialaOk : boolean;
WakeUp_String : string;
function GetRandomChar: string;
procedure Wake_Up_THGG;
end;
// ...
function TMainForm.GetRandomChar: string;
var
R : integer;
Set_Digits, Set_Small, Set_Capital : set of Byte;
begin
Set_Digits := [Ord('0')..Ord('9')];
Set_Small := [Ord('a')..Ord('z')];
Set_Capital := [Ord('A')..Ord('Z')];
repeat
R := Random(122) + 48;
until (R in Set_Digits) or (R in Set_Small) or (R in Set_Capital);
Result := Chr(R);
end;
procedure TMainForm.Wake_Up_THGG;
var
I : Byte;
begin
if GG.Connected then
begin
WakeUp_String := '';
for I := 1 to 200 do
begin
WakeUp_String := WakeUp_String + GetRandomChar;
end;
repeat
GG.SendMessage(GG.Number, WakeUp_String, []);
Sleep(100);
Application.ProcessMessages;
until DzialaOk = True;
Caption := 'Odbieranie i wysyłanie poprawne';
end;
end;
// ...
procedure TMainForm.GGMessage(Sender: TObject; GGNumber: Integer;
MessageContent: String; MessageTime: TDateTime);
begin
if (GGNumber = GG.Number)
and (MessageContent = WakeUp_String) then
begin
DzialaOk := True;
end;
if (MessageContent <> WakeUp_String) then
begin
RecvMemo.Lines.Add(Format('<%d>' +#9+ '[%s]' +#13#10+ '%s' +#13#10, [GGNumber, DateTimeToStr(MessageTime), MessageContent]));
end;
end;
// ...
Innego sposobu nie znam, ale może ktos inny coś Ci doradzi. Chociaż imo dużego pola do manewu nie ma.