Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите советом как отправить 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо