![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите советом как отправить ListBox1.Items [D6, WinXP]
Sanek_sd © (2006-12-22 21:33:00)Приветствую... :)
Немного озадачился как при помощи indy по TCP отправить содержимое ListBox1.Items.Text???... приходит только первый итемс... я так понял причина в символе переноса строки... ну вроде как понимаю что ListBox1.Items.Text нада конвертнуть передать принять.. и опять конвертнуть...
но возможно есть другой способ.. если есть подскажите плиз.. пока не нагарадил.. :)
пасиб!..
Dmitrij_K (2006-12-23 13:57:00) [1]Например так
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
StdCtrls, IdIOHandler, IdTCPServer, IdContext;
type
TForm1 = class(TForm)
Button1: TButton;
IdTCPClient1: TIdTCPClient;
IdTCPServer1: TIdTCPServer;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure IdTCPServer1Execute(AContext: TIdContext);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure WriteStrings(sl:TStrings; IOHandle:TIdIOHandler);
var j:Integer;
begin
IOHandle.WriteLn(IntToStr(sl.Count));
for j:=0 to sl.Count-1 do
IOHandle.WriteLn(sl[j]);
end;
procedure ReadStrings(sl:TStrings; IOHandle:TIdIOHandler);
var k,j : Integer;
begin
sl.Clear;
if TryStrToInt(IOHandle.ReadLn, k) then
begin
for j:=1 to k do
sl.Add(IOHandle.ReadLn)
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Host := '127.0.0.1';
IdTCPClient1.Port := 12345;
IdTCPClient1.Connect;
ReadStrings(ListBox1.Items, IdTCPClient1.IOHandler);
IdTCPClient1.Disconnect;
end;
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var sl : TStringList;
begin
sl := TStringList.Create;
sl.Add('1');
sl.Add('2');
sl.Add('3');
sl.Add('4');
sl.Add('5');
sl.Add('xxx');
WriteStrings(sl, AContext.Connection.IOHandler);
sl.Free;
end;
end.