Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ÇÖZÜLDÜ-IdTCPClient1 ve IdTCPServer1 kompenantları HK.
#1
arkadaşlar aşagıdaki kod aynı kompenantlarla delphi7 de çalışmasına ragmen lazarusda dizi göndermek istediğimde hata veriyor
k0mpenantlar aynı delphi7 sorunsuz çalışıyor.
lazarusda tek veri çalışıyor dizide hata alıyorum 
neyi yanlış yapıyorum acaba

saygılarımla.

lazarus kodu:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, IdTCPServer,
 IdTCPClient, IdCustomTCPServer, IdContext;

type

 { TForm1 }

 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Edit1: TEdit;
   IdTCPClient1: TIdTCPClient;
   IdTCPServer1: TIdTCPServer;
   ListBox1: TListBox;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure IdTCPServer1Execute(AContext: TIdContext);

 private
 procedure TCPveriDizisiGonder( Gdizi : Array of string);
 public

 end;

var
 Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.TCPveriDizisiGonder( Gdizi : Array of string);
var
i:integer;
kacTane:integer;
begin
try
kacTane := Length(Gdizi); //eleman sayısı
IdTCPClient1.Disconnect;
if not IdTCPClient1.Connected then
IdTCPClient1.Connect;
for i:=1 to kacTane do
                   begin
                   IdTCPClient1.IOHandler.writeln(Gdizi[i]);
                   end;
IdTCPClient1.IOHandler.writeln('*dur*');
IdTCPClient1.Disconnect;

except     //hata bölümü
    begin
    end;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
LLine: String;
begin
try
IdTCPClient1.Host:='127.0.0.1';
IdTCPClient1.Port:=1561;
if not (IdTCPClient1.Connected) then
  begin
   IdTCPClient1.Connect;
   IdTCPClient1.IOHandler.writeln(Edit1.Text);
  end;
IdTCPClient1.Disconnect;

except     //hata bölümü
    begin

    end;
    end;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
dizi:Array[0..3] of string;
begin
dizi[0]:='ver1';
dizi[1]:='ver2';
dizi[2]:='ver3';
dizi[3]:='ver4';
TCPveriDizisiGonder(dizi);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPServer1.DefaultPort:=1561;
IdTCPServer1.Active:=true;
end;

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
Swp:String;
begin
try
AContext.Connection.IOHandler.CheckForDisconnect(True, True);
Swp:=AContext.Connection.IOHandler.ReadLn();
if Swp<>'' then
          begin
          ListBox1.Items.Add(Swp);
          end;
except     //hata bölümü
    begin

    end;
    end;

end;
end.  

delphi kodu:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdTCPConnection, IdTCPClient, IdBaseComponent,
 IdComponent, IdTCPServer;

type
 TForm1 = class(TForm)
   IdTCPServer1: TIdTCPServer;
   IdTCPClient1: TIdTCPClient;
   Button1: TButton;
   Edit1: TEdit;
   ListBox1: TListBox;
   Button2: TButton;
   procedure IdTCPServer1Execute(AThread: TIdPeerThread);
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TCPveriDizisiGonder( Gdizi : Array of string);
var
i:integer;
kacTane:integer;
begin
try
kacTane :=Length(Gdizi); //eleman sayısı
Form1.IdTCPClient1.Disconnect;
if not Form1.IdTCPClient1.Connected then
Form1.IdTCPClient1.Connect;
for i:=1 to kacTane do
                   begin
                   Form1.IdTCPClient1.WriteLn(Gdizi[i]);
                   end;
Form1.IdTCPClient1.WriteLn('*dur*');
Form1.IdTCPClient1.Disconnect;

except     //hata bölümü
    begin

    end;
    end;
end;


procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var gelen:string;
begin
try
gelen:=AThread.Connection.ReadLn;
if (gelen<>'')then
               begin
               ListBox1.Items.Add(gelen);
               end;
except     //hata bölümü
    begin

    end;
    end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Host:='127.0.0.1';
IdTCPClient1.Port:=1561;

IdTCPClient1.Disconnect;
if not IdTCPClient1.Connected then
IdTCPClient1.Connect;
IdTCPClient1.WriteLn(Edit1.Text);;

IdTCPClient1.Disconnect;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPServer1.DefaultPort:=1561;
IdTCPServer1.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
dizi:Array[0..3] of string;
begin
dizi[0]:='ver1';
dizi[1]:='ver2';
dizi[2]:='ver3';
dizi[3]:='ver4';
TCPveriDizisiGonder(dizi);

end;

end.
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla
#2
Procedure TForm1.Sync(gln:string);
begin
showmessage(tmps);
end;

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
  Swp:String;
begin
try
tmps :=AContext.Connection.IOHandler.ReadLn;
  Sync(tmps);

except     //hata bölümü
     begin
     ShowMessage('hata2');
     end;
     end;

end; 
arkadaşlar server kısmında aşağıdaki gibi değişiklik yapınca sorun çözüldü.
teşekkürler
saygılar
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  ÇÖZÜLDÜ-zoom yapınca resim pixel rengi beyaz oluyor. sadikacar60 1 2.482 06-02-2020, Saat: 20:40
Son Yorum: sadikacar60
  ÇÖZÜLDÜ-çalışan exeleri listeleme hk. sadikacar60 1 2.527 05-11-2019, Saat: 22:40
Son Yorum: SimaWB
  Çözüldü sql sorgu 1 kere çalışıyor ikincide hata veriyor sadikacar60 10 10.895 24-06-2019, Saat: 10:28
Son Yorum: Fesih ARSLAN
  Çözüldü-tabloada arama yapmak sadikacar60 9 8.617 18-06-2019, Saat: 13:58
Son Yorum: sadikacar60
  çözüldü-RadioGroup1 problemi sadikacar60 2 3.433 15-06-2019, Saat: 21:34
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi