Buyrun arkadaşlar delphi 10.3 rio da çalışıyor. bir ilham olurdiye buraya iz bıraktım.
unit Unit1;
interface
uses
{$if CompilerVersion = 33}
// Delphi RIO
System.Permissions, // hata veren satır
{$endif}
FMX.DialogService,
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.Edit, System.Rtti, FMX.Grid.Style, FMX.Grid,
FMX.ScrollBox, FMX.StdCtrls, FMX.Ani, FMX.Memo, REST.Backend.EMSServices,
FireDAC.Stan.Intf, FireDAC.Comp.BatchMove, FireDAC.Comp.BatchMove.JSON,
REST.Backend.EMSFireDAC, FireDAC.Stan.Option, FireDAC.Stan.Error,
FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
FireDAC.Stan.Async, FireDAC.Phys, FireDAC.FMXUI.Wait, Data.DB,
FireDAC.Comp.Client, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf,
FireDAC.DApt, FireDAC.Comp.DataSet, Xml.xmldom, Xml.XMLIntf, Xml.XMLDoc;
type
TForm1 = class(TForm)
FloatAnimation1: TFloatAnimation;
FloatKeyAnimation1: TFloatKeyAnimation;
Panel1: TPanel;
FloatAnimation2: TFloatAnimation;
FloatAnimation3: TFloatAnimation;
FloatKeyAnimation2: TFloatKeyAnimation;
Panel2: TPanel;
Edit1: TEdit;
Panel3: TPanel;
Button1: TButton;
Panel4: TPanel;
EKLE: TButton;
Panel5: TPanel;
Grid1: TStringGrid;
StringColumn1: TStringColumn;
StringColumn2: TStringColumn;
StringColumn3: TStringColumn;
procedure FormCreate(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
procedure Grid1SelectCell(Sender: TObject; const ACol, ARow: Integer;
var CanSelect: Boolean);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
okuma_izni:String;
yazma_izni:String;
Procedure Sonuc_Kontrol_et(Sender: TObject; Const APermissions:TArray<String>; Const AGrantResults: TArray<TPermissionStatus>);
Procedure Izin_Gerekcesi(Sender: TObject; Const APermissions:TArray<String>; Const APostRationaleProc:TProc);
public
{ Public declarations }
end;
var
Form1: TForm1;
row,col:Integer;
fwit:Integer;
implementation
uses
{$IFDEF ANDROID}
Androidapi.Helpers,
Androidapi.JNI.JavaTypes,
Androidapi.JNI.Os,
{$ENDIF} System.IOUtils;
{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}
{$R *.Windows.fmx MSWINDOWS}
{$R *.NmXhdpiPh.fmx ANDROID}
function bugun():String;
var
TarihZaman : TDateTime;
simdi:String;
Begin
TarihZaman:=Now;
simdi:=DateTimeToStr(TarihZaman); // 15/03/2003 19:10:24 Yazar
simdi:=StringReplace(simdi, '.', '', [rfReplaceAll, rfIgnoreCase]);
simdi:=StringReplace(simdi, ' ', '', [rfReplaceAll, rfIgnoreCase]);
simdi:=StringReplace(simdi, ':', '', [rfReplaceAll, rfIgnoreCase]);
result:=simdi;
End;
procedure TForm1.Button1Click(Sender: TObject);
var
file_name : string;
a_file : TextFile;
say : Integer;
d,t:String;
begin
file_name := TPath.GetSharedPicturesPath + '/'+bugun+'.csv';
// open a file for writing
AssignFile (a_file, file_name);
ReWrite (a_file);
// write to a file
for Say := 0 to Grid1.RowCount do
Begin
if Grid1.Cells[2,Say]<>'' then
WriteLn (a_file, Grid1.Cells[2,Say]+',1');
End;
// close the file
CloseFile (a_file);
Grid1.SelectCell(0,Grid1.RowCount);
for Say := 0 to Grid1.RowCount do
Begin
if Grid1.Cells[2,Say]<>'' then
Begin
Grid1.Cells[0,row]:='';
Grid1.Cells[1,row]:='';
Grid1.Cells[2,row]:='';
End;
End;
row:=0;
Grid1.RowCount:=row;
Grid1.SelectCell(0,row);
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin
if key=vkReturn then
begin
Grid1.Cells[0,row]:=inttostr(row+1);
Grid1.Cells[1,row]:='Sil';
Grid1.Cells[2,row]:=Edit1.Text;
row:=row+1;
//showmessage(inttostr(row));
Edit1.Text:='';
Grid1.RowCount:=row+1;
Grid1.SelectCell(0,row);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
inherited;
{$IF DEFINED(ANDROID)}
okuma_izni:=JStringToString (TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);
yazma_izni:=JStringToString (TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);
{$ENDIF}
{$IF DEFINED(ANDROID)}
PermissionsService.RequestPermissions([okuma_izni,yazma_izni],Sonuc_Kontrol_et, Izin_Gerekcesi);
{$ENDIF}
fwit:=form1.Width;
//ShowMessage(inttostr(fwit));
row:=0;
Grid1.Columns[0].Width:= round(fwit*0.11);
Grid1.Columns[1].Width:= round(fwit*0.28);
grid1.Columns[2].Width:= round(fwit*0.50);
end;
procedure TForm1.Grid1SelectCell(Sender: TObject; const ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if ACol=1 then
Begin
Grid1.Cells[0,ARow]:='';
Grid1.Cells[1,ARow]:='';
Grid1.Cells[2,ARow]:='';
End;
end;
procedure TForm1.Izin_Gerekcesi(Sender: TObject; const APermissions: TArray<String>;
const APostRationaleProc: TProc);
Var
I:Integer;
KulMes:String;
begin
for I := 0 to High(APermissions) do
Begin
if APermissions[I]=okuma_izni then
KulMes:=KulMes+'Verileri Okumak ve Kaydetmek için dahili hafızaya erişim izni';
if APermissions[I]=yazma_izni then
KulMes:=KulMes+'Verileri Okumak ve Kaydetmek için dahili hafızaya erişim izni';
TDialogService.ShowMessage(KulMes,
Procedure(Const AResult:TModalResult)
Begin
APostRationaleProc;
End
);
End;
end;
procedure TForm1.Sonuc_Kontrol_et(Sender: TObject; const APermissions: TArray<String>;
const AGrantResults: TArray<TPermissionStatus>);
begin
if (length(AGrantResults)=2) and
(AGrantResults[0]= TPermissionStatus.Granted) and
(AGrantResults[1]= TPermissionStatus.Granted) then
begin
end
else
Begin
TDialogService.ShowMessage('işlem olmadı');
End;
end;
end.