You are on page 1of 2

var

frmsinyal: Tfrmsinyal;

implementation

{$R *.dfm}

procedure sumbu(image:Timage;ax,ay,b,c:integer);
begin
image.Canvas.Pen.Color:=clblack;
image.Canvas.MoveTo(ax,ay);
image.Canvas.LineTo(ax+b,ay);
image.Canvas.MoveTo(ax,ay);
image.Canvas.LineTo(ax,ay-c);
image.Canvas.MoveTo(ax,ay);
image.Canvas.LineTo(ax,ay+c);
image.canvas.Pen.Width:=3;
end;

procedure Tfrmsinyal.Edit1Change(Sender: TObject);


var
x1,x2,y1,y2,i,n:integer;
data:string;
pnjg:double;
begin
x1:=0;
y1:=100;
if length(Edit1.Text)=0 then
begin
Showmessage('Masukkan input data biner');
Edit1.SetFocus;
end
else begin
data:=Edit1.Text;
n:=length(Edit1.Text);
rz.Picture:=nil;
sumbu(rz,x1,y1,1000,100);
rz.Canvas.Pen.Color:=clblue;
//==================== Gambar Gelombang RZ =====================
pnjg:=round(rz.Width/round(2*n));
for i:=0 to n do
begin
if data[i] = '1' then
begin
x2:=round((2*i*pnjg)-(2*pnjg));
rz.Canvas.MoveTo(x2,y1-1);
rz.Canvas.LineTo(x2,y1-75);
rz.Canvas.LineTo(round(x2+pnjg),y1-75);
rz.Canvas.LineTo(round(x2+pnjg),y1-1);
rz.Canvas.LineTo(round(x2+2*pnjg),y1-1);
end
else begin
x2:=round((2*i*pnjg)-(2*pnjg));
rz.Canvas.MoveTo(x2,y1-1);
rz.Canvas.LineTo(x2,y1+75);
rz.Canvas.LineTo(round(x2+pnjg),y1+75);
rz.Canvas.LineTo(round(x2+pnjg),y1-1);
rz.Canvas.LineTo(round(x2+2*pnjg),y1-1);
end;
end;
end;
end;

procedure Tfrmsinyal.btKeluarClick(Sender: TObject);


begin
frmsinyal.close;
end;

end.

You might also like