Take

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 7

unit Unit8;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,
FMX.ListBox, FMX.Layouts, FMX.Grid, FMX.Edit, FMX.DateTimeCtrls, FMX.StdCtrls,
FMX.Controls.Presentation, Data.Bind.Components, Data.Bind.DBScope, Data.DB,
Data.Bind.EngExt, Fmx.Bind.DBEngExt, Fmx.Bind.Grid,
System.Bindings.Outputs, Fmx.Bind.Editors, Data.Bind.Grid, System.Actions,
FMX.ActnList, FMX.StdActns, FMX.MediaLibrary.Actions, FMX.TabControl,
FMX.Objects, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error,
FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef,
FireDAC.Stan.ExprFuncs, FireDAC.Comp.Client, FireDAC.Stan.Param, FireDAC.DatS,
FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Comp.DataSet, FMX.MediaLibrary,
FMX.Platform, System.Messaging;

type
TForm8 = class(TForm)
ToolBar1: TToolBar;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
SpeedButton1: TSpeedButton;
TabControl1: TTabControl;
TabItem1: TTabItem;
TabItem2: TTabItem;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DateEdit1: TDateEdit;
Edit1: TEdit;
Label4: TLabel;
Edit2: TEdit;
Label5: TLabel;
Label6: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Image1: TImage;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
FDConnection1: TFDConnection;
BindSourceDB1: TBindSourceDB;
FDQuery1: TFDQuery;
GridBindSourceDB1: TGrid;
LinkGridToDataSourceBindSourceDB1: TLinkGridToDataSource;
BindingsList1: TBindingsList;
FDQuery1Noid: TIntegerField;
FDQuery1TglKeluar: TDateField;
FDQuery1Jumlah: TIntegerField;
FDQuery1Kategori: TStringField;
FDQuery1Ket: TStringField;
FDQuery1Foto: TBlobField;
FDQuery2: TFDQuery;
procedure SpeedButton1Click(Sender: TObject);
procedure FDConnection1BeforeConnect(Sender: TObject);
procedure FDConnection1AfterConnect(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure GridBindSourceDB1Tap(Sender: TObject; const Point: TPointF);
procedure Button4Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
procedure bersih;
procedure DoDidFinish(Image: TBitmap);
procedure DoMessageListener(const Sender: TObject; const M: TMessage);
{ Private declarations }
public
{ Public declarations }
end;

var
Form8: TForm8;

implementation

uses system.IOUtils, Unit1, unit2;

{$R *.fmx}
{$R *.NmXhdpiPh.fmx ANDROID}

procedure TForm8.bersih;
begin
dateedit1.date:=now();
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
Image1.Bitmap:=nil;
radiobutton1.IsChecked:=false;
radiobutton2.IsChecked:=false;
button2.Enabled:=false;
end;

procedure TForm8.Button1Click(Sender: TObject);


begin
dateedit1.Date:=now();
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
image1.Bitmap:=nil;
radiobutton1.IsChecked:=false;
radiobutton2.IsChecked:=false;
edit3.Text:=datetostr(dateedit1.Date);
edit3.text:=formatdatetime('dd/mm/yyyy',Dateedit1.Date);
Button2.Enabled:=true;
Button4.Enabled:=false;
Button3.Enabled:=false;
end;

procedure TForm8.Button2Click(Sender: TObject);


var
stream:tstream;
field:Tblobfield;
jk:string;
begin
if RadioButton1.IsChecked=True then
jk := 'Keperluan Masjid' else
if RadioButton2.IsChecked=True then
jk:= 'Pembangunan';
edit4.text:=inttostr(FDquery1.RecordCount+1);
edit3.Text:=datetostr(dateedit1.Date);
edit3.text:=formatdatetime('dd/mm/yyyy',Dateedit1.Date);
edit5.text:=jk;
fdquery1.Append;
fdquery1.FieldByName('jumlah').AsString:=edit1.Text;
fdquery1.FieldByName('tglkeluar').AsString:=edit3.text;
fdquery1.FieldByName('ket').AsString:=edit2.Text;
fdquery1.FieldByName('noid').AsString:=edit4.Text;
fdquery1.FieldByName('kategori').AsString:=edit5.Text;
field:=tblobfield(fdquery1.FieldByName('foto'));
Stream:=fdquery1.CreateBlobStream(field, bmwrite);
try
image1.Bitmap.SaveToStream(stream);
finally
stream.Free;
fdquery1.Post;
fdquery1.Active:=false;
fdquery1.Active:=true;
bersih;
end;
end;

procedure TForm8.Button3Click(Sender: TObject);


var
stream:tstream;
field:Tblobfield;
jk:string;
begin
if not(edit4.Text <>'') then
begin
ShowMessage('Silahkan Pilih Data yang akan di Update');
exit;
end;
if RadioButton1.IsChecked=True then
jk := 'Keperluan Masjid' else
if RadioButton2.IsChecked=True then
jk:= 'Pembangunan';
edit3.Text:=datetostr(dateedit1.Date);
edit3.text:=formatdatetime('dd/mm/yyyy',Dateedit1.Date);
edit5.text:=jk;
fdquery1.Edit;
fdquery1.FieldByName('jumlah').AsString:=edit1.Text;
fdquery1.FieldByName('tglkeluar').AsString:=edit3.text;
fdquery1.FieldByName('ket').AsString:=edit2.Text;
fdquery1.FieldByName('noid').AsString:=edit4.Text;
fdquery1.FieldByName('kategori').AsString:=edit5.Text;
field:=tblobfield(fdquery1.FieldByName('foto'));
Stream:=fdquery1.CreateBlobStream(field, bmwrite);
try
image1.Bitmap.SaveToStream(stream);
finally
stream.Free;
fdquery1.Post;
fdquery1.Active:=false;
fdquery1.Active:=true;
bersih;
end;
end;

procedure TForm8.Button4Click(Sender: TObject);


var
a : string;
begin
if not(edit4.Text <>'') then
begin
ShowMessage('Silahkan Pilih Data yang akan di Hapus');
exit;
end;
MessageDlg('Anda Yakin Menghapus Data ini?', TMsgDlgType.mtConfirmation,
[TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0,
procedure(const AResult: TModalResult)
begin if AResult = mrYes then begin
FDQuery2.Active:=False;
FDquery2.SQL.Clear;
a:='DELETE from tbkeluar where Noid="'+edit4.text+'"';
FDQuery2.ExecSQL(a);
FDQuery1.Active:=False;
FDQuery1.Active:=True;
bersih;
Exit; end end);
end;

procedure TForm8.Button5Click(Sender: TObject);


begin
dateedit1.date:=now();
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
Image1.Bitmap:=nil;
radiobutton1.IsChecked:=false;
radiobutton2.IsChecked:=false;
button2.Enabled:=false;
end;

procedure TForm8.DoDidFinish(Image: TBitmap);


begin
Image1.Bitmap.Assign(Image);
end;
procedure TForm8.DoMessageListener(const Sender: TObject; const M: TMessage);
begin
if M is TMessageDidFinishTakingImageFromLibrary then
Image1.Bitmap.Assign(TMessageDidFinishTakingImageFromLibrary(M).Value);
end;

procedure TForm8.FDConnection1AfterConnect(Sender: TObject);


begin
FDConnection1.ExecSQL('CREATE TABLE IF NOT EXISTS tbkeluar (Noid Integer NOT
NULL,Tglkeluar DATE NOT NULL,Jumlah INTEGER NOT NULL,Kategori VARCHAR(25) NOT
NULL,Ket VARCHAR(50) NOT NULL,foto BLOB NOT NULL)');
end;

procedure TForm8.FDConnection1BeforeConnect(Sender: TObject);


begin
{$IF DEFINED(iOS) or DEFINED(ANDROID)}
FDConnection1.Params.Values['Database'] :=
TPath.Combine(TPath.GetDocumentsPath, 'dbmasjid.s3db');
{$ENDIF}
end;

procedure TForm8.FormActivate(Sender: TObject);


begin
if form2.Edit3.Text='user' then
begin
bersih;
button2.Enabled:=false;
button1.Enabled:=false;
button3.Enabled:=false;
button4.Enabled:=false;
button5.Enabled:=false;
end
else
begin
bersih;
button2.Enabled:=false;
button1.Enabled:=true;
button3.Enabled:=true;
button4.Enabled:=true;
button5.Enabled:=true;
end;
end;

procedure TForm8.FormCreate(Sender: TObject);


begin
TMessageManager.DefaultManager.SubscribeToMessage(TMessageDidFinishTakingImageFromL
ibrary, DoMessageListener);
end;

procedure TForm8.FormShow(Sender: TObject);


begin
fdquery1.Active:=true;
end;

procedure TForm8.GridBindSourceDB1Tap(Sender: TObject; const Point: TPointF);


var
BlobStream: TStream;
begin
if form2.Edit3.Text='user' then
begin
BlobStream :=
FDQuery1.CreateBlobStream(FDQuery1.FieldByName('foto'),TBlobStreamMode.bmRead);
Blobstream.Position := 0;
Image1.bitmap.loadfromstream(blobstream);
BlobStream.Free;
edit4.Text:=fdquery1['Noid'];
edit1.Text:=fdquery1['jumlah'];
edit5.Text:=fdquery1['Kategori'];
edit2.Text:=fdquery1['ket'];
dateedit1.Date:=fdquery1['Tglkeluar'];
if fdquery1kategori.Value='Keperluan Masjid' then
begin
radiobutton1.IsChecked:=true;
radiobutton2.IsChecked:=false;
end
else
begin
radiobutton2.IsChecked:=true;
radiobutton1.IsChecked:=false;
end;
button4.Enabled:=false;
button3.EnableD:=false;
button2.Enabled:=false;
end
else
begin
BlobStream :=
FDQuery1.CreateBlobStream(FDQuery1.FieldByName('foto'),TBlobStreamMode.bmRead);
Blobstream.Position := 0;
Image1.bitmap.loadfromstream(blobstream);
BlobStream.Free;
edit4.Text:=fdquery1['Noid'];
edit1.Text:=fdquery1['jumlah'];
edit5.Text:=fdquery1['Kategori'];
edit2.Text:=fdquery1['ket'];
dateedit1.Date:=fdquery1['Tglkeluar'];
if fdquery1kategori.Value='Keperluan Masjid' then
begin
radiobutton1.IsChecked:=true;
radiobutton2.IsChecked:=false;
end
else
begin
radiobutton2.IsChecked:=true;
radiobutton1.IsChecked:=false;
end;
button4.Enabled:=true;
button3.EnableD:=true;
button2.Enabled:=false;
end;
end;

procedure TForm8.SpeedButton1Click(Sender: TObject);


begin
form1.Show;
end;
procedure TForm8.SpeedButton2Click(Sender: TObject);
var
Service: IFMXCameraService;
Params: TParamsPhotoQuery;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService,
Service) then
begin
Params.Editable := True;
// Specifies whether to save a picture to device Photo Library
Params.NeedSaveToAlbum := True;
Params.RequiredResolution := TSize.Create(640, 640);
Params.OnDidFinishTaking := DoDidFinish;
Service.TakePhoto(speedButton2, Params);
end
else
ShowMessage('This device does not support the camera service');
end;

procedure TForm8.SpeedButton3Click(Sender: TObject);


var
ImageService: IFMXTakenImageService;
Params: TParamsPhotoQuery;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXTakenImageService,
IInterface(ImageService)) then
begin
Params.RequiredResolution := TSize.Create(640, 640);
Params.OnDidFinishTaking := DoDidFinish;
ImageService.TakeImageFromLibrary(speedButton3, Params);
end;
end;

end.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy