Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit uFunction;
- interface
- uses
- System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
- FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
- Data.DB, MemDS, DBAccess, Uni, UniProvider,
- MySQLUniProvider, 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.FMXUI.Wait,
- FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt,
- FireDAC.Comp.DataSet, FireDAC.Comp.Client, FMX.Objects, FMX.StdCtrls,
- FMX.DialogService, FMX.Layouts, FMX.WebBrowser;
- type
- FuncClass = Class
- public
- class procedure ReleaseInfo(Sender: TObject);
- end;
- procedure fnCreateInfo(Form : TForm; Status : String);
- procedure fnLoadLoading(Form : TForm; Status : String);
- procedure fnReleaseInfo;
- var
- loInfo : TLayout;
- aniAds : TAniIndicator;
- reInfo : TRectangle;
- lblInfo : TLabel;
- tiInfo : TTimer;
- statBrowser, statAds, statInfo : Boolean;
- onError : String;
- WB : TWebBrowser;
- implementation
- uses uDM, uMain, uMainCode;
- procedure fnCreateInfo(Form : TForm; Status : String);
- var
- totString : Integer;
- begin
- if statInfo = True then
- Exit;
- totString := Length(Status);
- TThread.CreateAnonymousThread(
- procedure
- begin
- TThread.Synchronize(TThread.CurrentThread,
- procedure
- begin
- try
- statInfo := True;
- loInfo := TLayout.Create(Form);
- loInfo.Parent := Form;
- loInfo.Align := TAlignLayout.Client;
- loInfo.HitTest := False;
- reInfo := TRectangle.Create(loInfo);
- reInfo.Parent := loInfo;
- reInfo.Stroke.Thickness := 0;
- reInfo.Stroke.Color := TAlphaColorRec.Null;
- reInfo.XRadius := 8;
- reInfo.YRadius := 8;
- reInfo.Opacity := 0.8;
- reInfo.Fill.Color := TAlphaColorRec.Black;
- reInfo.Height := 30;
- reInfo.Align := TAlignLayout.Center;
- reInfo.Width := reInfo.Width + (totString * 5);
- reInfo.Margins.Top := loInfo.Height - reInfo.Height - 200;
- reInfo.HitTest := False;
- lblInfo := TLabel.Create(loInfo);
- lblInfo.Parent := loInfo;
- lblInfo.Height := reInfo.Height;
- lblInfo.Align := TAlignLayout.Center;
- lblInfo.Width := lblInfo.Width + (totString * 5);
- lblInfo.Margins.Top := loInfo.Height - lblInfo.Height - 200;
- lblInfo.HitTest := False;
- lblInfo.Font.Family := 'Bebas Neue'; //nama Font yang digunakan
- lblInfo.Font.Size := 12;
- lblInfo.Text := Status;
- lblInfo.TextSettings.HorzAlign := TTextAlign.Center;
- lblInfo.Font.Style := [TFontStyle.fsBold];
- lblInfo.FontColor := TAlphaColorRec.White;
- lblInfo.StyledSettings := [];
- tiInfo := TTimer.Create(Form);
- tiInfo.Interval := 50;
- tiInfo.OnTimer := FuncClass.ReleaseInfo;
- tiInfo.Enabled := False;
- tiInfo.Enabled := True;
- except
- statInfo := False;
- end;
- end
- );
- end
- ) .Start;
- end;
- procedure fnLoadLoading(Form : TForm; Status : String);
- var
- totString : integer;
- begin
- if statInfo = True then
- begin
- totString := Length(Status);
- lblInfo.Width := lblInfo.Width + (totString * 5);
- reInfo.Opacity := 0.8;
- lblInfo.Text := Status;
- end
- else if statInfo = False then
- fnCreateInfo(Form, Status);
- end;
- procedure fnReleaseInfo;
- begin
- if statInfo = True then
- begin
- {$IF DEFINED(IOS) or DEFINED(ANDROID)}
- tiInfo.DisposeOf;
- reInfo.DisposeOf;
- lblInfo.DisposeOf;
- loInfo.DisposeOf;
- {$ELSE}
- tiInfo.Free;
- reInfo.Free;
- lblInfo.Free;
- loInfo.Free;
- {$ENDIF}
- statInfo := False;
- end;
- end;
- { FuncClass }
- class procedure FuncClass.ReleaseInfo(Sender: TObject);
- begin
- if statInfo = True then
- reInfo.Opacity := reInfo.Opacity - 0.02;
- if reInfo.Opacity <= 0.1 then
- begin
- fnReleaseInfo;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement