bfa.func
bfa.func
Func;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Layouts, System.Generics.Collections, System.Net.URLClient, System.Net.HttpClient,
System.Net.HttpClientComponent, FireDAC.Stan.Intf, FireDAC.Stan.Option, System.Json, System.NetEnc
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.FMXUI.Wait,
FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FMX.ListView.Types,
FireDAC.Comp.DataSet, FireDAC.Comp.Client,
FMX.Objects, System.IniFiles, System.IOUtils;
procedure fnCreateDir;
function fnGetLoc : String;
function fnLoadFile(AFileName : String) : String;
procedure fnDownloadFile(FURL, ASaveFile : String);
procedure fnSetImage(AControl : TControl; ASaveFile : String);
implementation
Query.SQL.Add(S);
end;
s := Query.SQL.Text;
x1 := Pos('SELECT TOP', UpperCase(s));
if x1 > 0 then
begin
if s[x1 - 1] = '(' then // --> berarti ada Sub Query di dalam Query, perlu diparse lagi
begin
x2 := Pos(')', s); // ambil akhir dari sub query
s1 := UpperCase(Copy(s, x1, x2 - x1));
prExplodeStr(s1, ' ', L);
FreeAndNil(L);
Query.Prepared;
// fnWriteQueryLog(Format('DATE: %s | QUERY: %s', [fnFormatDateTimeDB(Now), Query.SQL.Text]));
Query.Open;
end;
s := Query.SQL.Text;
x1 := Pos('SELECT TOP', UpperCase(s));
if x1 > 0 then
begin
if s[x1 - 1] = '(' then // --> berarti ada Sub Query di dalam Query, perlu diparse lagi
begin
x2 := Pos(')', s); // ambil akhir dari sub query
s1 := UpperCase(Copy(s, x1, x2 - x1));
prExplodeStr(s1, ' ', L);
FreeAndNil(L);
Query.Prepared;
Query.ExecSQL;
end;
procedure fnCreateDir;
begin
{$IF DEFINED(MSWINDOWS)}
if not DirectoryExists(ExpandFileName(GetCurrentDir) + PathDelim + 'assets') then
CreateDir(ExpandFileName(GetCurrentDir) + PathDelim + 'assets');
if (ext = '.doc') or (ext = '.pdf') or (ext = '.csv') or (ext = '.txt') or (ext = '.xls') then
Result := fnGetLoc + 'assets' + PathDelim + 'doc' + PathDelim + AFileName;
if (ext = '.mp4') or (ext = '.avi') or (ext = '.wmv') or (ext = '.flv') or (ext = '.mov') or (ex
Result := fnGetLoc + 'assets' + PathDelim + 'video' + PathDelim + AFileName;
if (ext = '.mp3') or (ext = '.wav') or (ext = '.wma') or (ext = '.aac') or (ext = '.flac') or (e
Result := fnGetLoc + 'assets' + PathDelim + 'music' + PathDelim + AFileName;
{$ENDIF}
end;
isAvail := True;
if FileExists(fnLoadFile(ASaveFile)) then begin
try
if AControl is TRectangle then begin
TRectangle(AControl).Fill.Bitmap.Bitmap.LoadFromFile(fnLoadFile(ASaveFile));
TRectangle(AControl).Fill.Kind := TBrushKind.Bitmap;
TRectangle(AControl).Fill.Bitmap.WrapMode := TWrapMode.TileStretch;
end else if AControl is TCircle then begin
TCircle(AControl).Fill.Bitmap.Bitmap.LoadFromFile(fnLoadFile(ASaveFile));
TCircle(AControl).Fill.Kind := TBrushKind.Bitmap;
TCircle(AControl).Fill.Bitmap.WrapMode := TWrapMode.TileStretch;
end else if AControl is TImage then begin
TImage(AControl).Bitmap.LoadFromFile(fnLoadFile(ASaveFile));
TImage(AControl).WrapMode := TImageWrapMode.Stretch;
end else begin
isAvail := False;
AText := 'This component not support';
end;
except
isAvail := False;
AText := 'File Image Corrupt';
DeleteFile(fnLoadFile(ASaveFile));
end;
end else begin
isAvail := False;
AText := 'File Image Not Found';
end;
AControl.AddObject(L);
end;
end;
end.