napisałem prosty program ktory wciska klawisze u mnie i u klienta za pomoca socketow klawisze te sa podpiete pod registerhotkey, obsluge kilku klientow zrobilem za pomoca instrukcji for (zmniejszam index w tablicy connection), problem jest taki ze klient reaguje tylko na sygnal nr 1, a reszte 'olewa' tak wyglada procedura wysylajaca komunikaty (ona dziala);
(push to procedura ktora wciska klawisze)
procedure TForm1.wm_HOTKEY(var Msg: TMessage);
var
lindeks: Integer;
begin
if Msg.WParam = $0001 then
begin
for lindeks:=indeks downto 0 do
begin
if ServerSocket1.Active then ServerSocket1.Socket.Connections[lindeks].Sendtext('1');
end;
Sleep(strtoint(Edit1.text));
Push('1');
end
else if Msg.WParam = $0002 then
begin
for lindeks:=indeks downto 0 do
begin
if ServerSocket1.Active then ServerSocket1.Socket.Connections[lindeks].Sendtext('2');
end;
Sleep(strtoint(Edit2.text));
Push('2');
end
else if Msg.WParam = $0003 then
begin
for lindeks:=indeks downto 0 do
begin
if ServerSocket1.Active then ServerSocket1.Socket.Connections[lindeks].Sendtext('3');
end;
Sleep(strtoint(Edit3.text));
Push('3');
end;
end;
problem jest gdzies jednak w procedurce ktora odbiera te komunikaty :/ reaguje ona tylko na komunikat '1', reszte olewa, czy ktos widzi tutaj blad ?
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
if socket.ReceiveText='1' then
begin
Sleep(strtoint(edit1.Text)); Push('1')
end
else if socket.ReceiveText='2' then
begin
Sleep(strtoint(edit2.Text));
Push('2')
end
else if socket.ReceiveText='3' then
begin
Sleep(strtoint(edit3.Text));
Push('3')
end
end;