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:
delphi kodu:
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.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

