5
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image: TImage; Label1: TLabel; btnAMI: TButton; btnexit: TButton; edbiner: TEdit; procedure btnAMIClick(Sender: TObject); procedure btnexitClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm}

Coding Bipolar Ami

Embed Size (px)

DESCRIPTION

list program Bipolar AMI pada delphi

Citation preview

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type TForm1 = class(TForm) Image: TImage; Label1: TLabel; btnAMI: TButton; btnexit: TButton; edbiner: TEdit; procedure btnAMIClick(Sender: TObject); procedure btnexitClick(Sender: TObject); private { Private declarations } public { Public declarations } end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure AMI_1positif(ax,ay,a,b,i:integer); // AMI +begin form1.image.Canvas.Pen.Color:=clred; form1.image.Canvas.Pen.Width:=2; form1.image.Canvas.MoveTo(ax+(i-1)*b,ay); form1.image.Canvas.LineTo(ax+(i-1)*b,ay-a); form1.image.Canvas.MoveTo(ax+(i-1)*b,ay-a); form1.image.Canvas.LineTo(ax+b+(i-1)*b,ay-a); form1.image.Canvas.MoveTo(ax+b+(i-1)*b,ay-a); form1.image.Canvas.LineTo(ax+b+(i-1)*b,ay); end;

procedure AMI_1negatif(ax,ay,a,b,i:integer); // AMI -begin form1.image.Canvas.Pen.Color:=clred; form1.image.Canvas.Pen.Width:=2; form1.image.Canvas.MoveTo(ax+(i-1)*b,ay); form1.image.Canvas.LineTo(ax+(i-1)*b,ay+a); form1.image.Canvas.MoveTo(ax+(i-1)*b,ay+a); form1.image.Canvas.LineTo(ax+b+(i-1)*b,ay+a); form1.image.Canvas.MoveTo(ax+b+(i-1)*b,ay+a); form1.image.Canvas.LineTo(ax+b+(i-1)*b,ay);end;

procedure AMI_0(ax,ay,a,b,i:integer); //AMI NOL begin form1.image.Canvas.Pen.Color:=clred; form1.image.Canvas.Pen.Width:=2; form1.image.Canvas.MoveTo(ax+(i-1)*b,ay); form1.image.Canvas.LineTo(ax+b+(i-1)*b,ay); end;

procedure dtegak(ax,ay,a,b,i:integer);begin form1.image.Canvas.Pen.Color:=clred; form1.image.Canvas.Pen.Width:=2; form1.image.Canvas.MoveTo((ax+(i-1)*b),ay); form1.image.Canvas.LineTo((ax+b+(i-1)*b),ay);end;

procedure sumbu;var q,j:integer; edbiner:string;beginedbiner:=form1.edbiner.Text;q:=length(edbiner);

form1.image.Picture:=nil;form1.image.Refresh;

form1.image.Canvas.Pen.Color:=clBlack; form1.image.Canvas.Pen.Style:=pssolid; form1.image.Canvas.MoveTo(10,200); form1.image.Canvas.LineTo(10,200-145); form1.image.Canvas.TextOut(10,200-155,'Amplitudo'); form1.image.Canvas.TextOut(10+150,200-155,'BIPOLAR AMI'); form1.image.Canvas.MoveTo(10,140); form1.image.Canvas.LineTo(10+370,140); form1.image.Canvas.TextOut(10+370,140+5,'Time'); form1.image.Canvas.Pen.Color:=clBlue; form1.image.Canvas.Pen.Style:=psDot; form1.image.Canvas.TextOut(200-200,200-100,'5V+'); form1.image.Canvas.TextOut(200-200,200-70,'0V'); form1.image.Canvas.TextOut(200-200,200-40,'5V-'); for j:=1 to q do begin form1.image.Canvas.MoveTo(10+(60*j),200-130); form1.image.Canvas.LineTo(10+(60*j),200); form1.image.Canvas.TextOut(10+(60*j)-15,200-130,edbiner[j]); end;end;

procedure BIPOLARAMI;//CODING BIPOLAR AMIvar ax,ay,a,b,i,k:integer; edbiner:string;beginedbiner:=form1.edbiner.Text;ax:=10; ay:=140; a:=60; b:=30;k:=0; for i:=1 to length(edbiner) do begin if edbiner[i]='1' then begin k:=k+1; if k mod 2=1 then begin AMI_1positif(ax,ay,b,a,i); end else begin AMI_1negatif(ax,ay,b,a,i); end end else

begin dtegak(ax,ay,b,a,i); AMI_0(ax,ay,b,a,i); end endend;

procedure TForm1.btnAMIClick(Sender: TObject);beginsumbu;BIPOLARAMI;end;

procedure TForm1.btnexitClick(Sender: TObject);beginclose;end;

end.