Показать сообщение отдельно
  #3  
Старый 15.07.2014, 07:35
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

По-видимому, в 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;
Ответить с цитированием