You are on page 1of 4

unit Percobaan271119;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, CPort, TeEngine, Series, TeeProcs, Chart, DbChart,
StdCtrls;

type
TForm1 = class(TForm)
ComPort1: TComPort;
Timer1: TTimer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
RadioButton1: TRadioButton;
Label1: TLabel;
Label2: TLabel;
DBChart1: TDBChart;
Series1: TLineSeries;
Tanggal: TLabel;
Waktu: TLabel;
labelNow: TLabel;
SaveDialog1: TSaveDialog;
Edit1: TEdit;
Edit2: TEdit;
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure ComPort1RxChar(Sender: TObject; Count: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
it,win:Integer;
data:String;
buka_excel,data_excel,SaveChange:OleVariant;
sheet:variant;

implementation

uses StrUtils,ComObj,DateUtils,math;
{$R *.dfm}

procedure TForm1.Button4Click(Sender: TObject);


begin
if MessageDlg (' inginmenutup program ?', mtConfirmation,
mbOKCancel,0)=1 Then
Application.Terminate;
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
Comport1.ShowSetupDialog;
Button2.Enabled:=True;
Button3.Enabled:=True;
end;

procedure TForm1.Button6Click(Sender: TObject);


begin
Button3Click(Sender);
FormCreate (Sender);
Series1.Clear;
end;

procedure TForm1.FormCreate(Sender: TObject);


begin
//Application.UpdateFormateSettings:=false;
//DecimalSeparator:='.';
Timer1.Enabled:=False;
it:=0;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button5.Enabled:=True;
Button6.Enabled:=True;
end;

procedure TForm1.Button3Click(Sender: TObject);


begin
Timer1.Enabled:=False;
ComPort1.Close;
Button5.Enabled:=True;
Button6.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);


begin
ComPort1.Open;
Timer1.Enabled:=True;
Waktu.Caption:=FormatDateTime('hh:nn:ss',Now);
//program Buka excel
buka_excel:=CreateOleObject('Excel.Application');
buka_excel.Visible:=True;
data_excel:=buka_excel.WorkBooks.Add;
buka_excel.WorkBooks[1].Worksheets[1].Name:='data arduino';
sheet:=buka_excel.WorkBooks[1].Worksheets['data arduino'];
Sheet.Cells[1,1]:='No';
Sheet.Cells[1,2]:='Tanggal';
Sheet.Cells[1,3]:='Waktu';
Sheet.Cells[1,4]:='Data';

end;

procedure TForm1.Timer1Timer(Sender: TObject);


var
GrafikX,GrafikY:Real;
Tgl:String;
begin
Tgl:=FormatDateTime('dddd,dmmmm, yyyyy',Now+0.125);
Tanggal.Caption:=Tgl;
it:=it+1;
if data=''then data:='0';
labelNow.Caption:=FormatDateTime('hh,nn,ss',Now);
Edit1.Text:=IntToStr (it);
Edit2.Text:=data;

//Menampilkan di Excel
if RadioButton1.Checked then
begin
sheet.cells[it+1,1]:=it;
sheet.cells[it+1,2]:=FormatDateTime('dddd, d mmmm,yyyy',Now);
sheet.cells[it+1,3]:=FormatDateTime('hh,nn,ss',Now);
sheet.cells[it+1,4]:=data;
end;

//tampilanuntukgrafik
GrafikX:=it;
GrafikY:=StrToFloat(data);
with DBChart1 do
with Series1 do
AddXY(GrafikX,GrafikY);
win:=1;

end;

procedure TForm1.Button5Click(Sender: TObject);


begin
if SaveDialog1.Execute=True then
With SaveDialog1 do
begin
data_excel.SaveAs(SaveDialog1.FileName);
Button4.Focused;
end;
buka_excel.WorkBooks.Close;
buka_excel.Quit;
buka_excel:=Unassigned;
end;

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);


var
datamasuk,masuk,ward:String;
coba,aja:Integer;
begin

if win=0 then Exit;


ward:='';
masuk:='';
repeat
begin
ComPort1.ReadStr(datamasuk,1);
ward:=ward+datamasuk;
end;
until datamasuk='B';
masuk:=ward;

coba:=Pos('A', masuk);
aja:=Pos('B',masuk);
data:=MidStr(ward,coba+1,aja-coba-1);
win:=0
end;

end.

You might also like