По-видимому, в ServerSocket1ClientRead нужны внешние счётчики координат ячейки, напр. примерно так
Код:
var
c, r: Integer; //при первой передаче их нужно установить как c:=0;r:=1;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.StringGrid1.Cells [c,r] := Socket.ReceiveText;
Inc(c);
Inc(r);
if c > 5 then c:= 0;
if r > 5 then r:= 1;
end;
или такой изврат - в двух первых знаках принимаемой строки координаты заполняемой ячейки (только до 9). При передаче
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
cc, rc, c, r: Integer;
begin
cc := Form1.StringGrid1.ColCount;
rc := Form1.StringGrid1.RowCount;
for r := 1 to rc -1 do
for c := 0 to cc -1 do
Form1.ClientSocket1.Socket.SendText(IntToStr(c)+IntToStr(r)+Form1.StringGrid1.Cells[c,r]);
end;
при приёме
Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
c, r: Integer;
s: string;
begin
s:= Socket.ReceiveText;
c:= StrToInt(s[1]);
r:= StrToInt(s[2]);
Form1.StringGrid1.Cells [c,r]:= Copy(s,3,Length(s));
end;