1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Client-server Sockets Stringgrid

Тема в разделе "Delphi - программирование", создана пользователем GrabbeR, 15 дек 2014.

  1. GrabbeR

    GrabbeR New Member

    Репутация:
    0
    Регистрация:
    26 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    Наставьте на путь истинный. Пытаюсь отправить содержимое одной строки на сервер, чтобы тот принял и вставил данные в таком же виде (столбцы). Получилось, но данные отправляются в 1 строку таблицы и при повторной отправке перезаписываются в той же строке.
    Хочу сделать, чтобы при получении данных они вставлялись в новую строку (динамически созданную) - подскажите примером.

    Отправляю на сервер:
    Код:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    r: Integer; s:string;
    begin
    s:='';
    with StringGrid1 do begin
    for r := 0 to RowCount -2 do
    s:=s+Rows[r].CommaText+#13#10;
    end;
    ClientSocket1.Socket.SendText(s);
    end;
    Принимаю:
    Код:
    procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
    Socket: TCustomWinSocket);
    var
    st : TStringList;
    r: Integer;
    begin
    st:=TStringList.Create;
    st.Text:=Socket.ReceiveText;
    with StringGrid1 do begin
    RowCount:=st.Count;
    for r := 0 to RowCount -1 do
    Rows[r].CommaText:=st[r];
    end;
    StringGrid1.RowCount := 5;
    st.free;
    end;
     
  2. sinkopa

    sinkopa Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    отправляем
    Код:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    // отправить строки
    SendRows(1,5,True);
    end;
    
    
    procedure TForm1.SendRows(ARowFrom,			 // с какой строки грида
    ARowTo: Integer;			// по какую (включительно)
    AppendRows: Boolean); // добавлять или перезаписывать
    var
    S: string;
    R: Integer;
    begin
    // добавили комманду (в первой "лишней" строке)
    if AppendRows then	  // True - добавлять в конец грида
    S := '<append>'#13#10
    else					// False - перезаписать грид
    S := '<replace>'#13#10;
    
    with StringGrid1 do begin
    for R := ARowFrom to ARowTo do
    S := S + Rows[R].CommaText+#13#10;
    end;
    
    ClientSocket1.Socket.SendText(S);
    end;
    принимаем
    Код:
    procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
    Socket: TCustomWinSocket);
    var
    st : TStringList;
    i,R : Integer;
    command: string;
    begin
    st := TStringList.Create;
    st.Text := Socket.ReceiveText; // получили данные
    
    command := st[0]; // прочитали комманду в первой "лишней" строке
    st.Delete(0);	 // удалили "лишнюю" строку с командой
    
    if (command = '<append>') then begin
    R := StringGrid1.RowCount;	  // с какой строки грида будем вставлять
    StringGrid1.RowCount := StringGrid1.RowCount + st.Count; // "растянуть" грид
    end
    else if (command = '<replace>') then begin
    R := 0;
    StringGrid1.RowCount := st.Count;
    end
    else begin
    ShowMessage('неизветная команда "'+command+'"');
    Exit;
    end;
    
    with StringGrid1 do
    for i := 0 to st.Count-1 do begin
    Rows[R].CommaText := st[i];
    Inc(R);
    end;
    
    st.free;
    end;
    както так <_<
     
Загрузка...
Похожие Темы - Client server Sockets
  1. Shouldercannon
    Ответов:
    0
    Просмотров:
    1.016
  2. Ruslan280
    Ответов:
    28
    Просмотров:
    2.316
  3. Akram
    Ответов:
    1
    Просмотров:
    1.628
  4. rinsk
    Ответов:
    5
    Просмотров:
    1.814
  5. RixPvl

    Upd Client

    RixPvl, 31 авг 2013, в разделе: Java
    Ответов:
    0
    Просмотров:
    1.155

Поделиться этой страницей