-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSplashScreen.pas
120 lines (104 loc) · 2.75 KB
/
SplashScreen.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
unit SplashScreen;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls, FMX.Edit, FMX.Objects, FMX.Ani,
FMX.Effects, FMX.Filter.Effects;
type
TfrmSplashScreen = class(TForm)
Image1: TImage;
tmrStart: TTimer;
RippleTransitionEffect1: TRippleTransitionEffect;
tmrRiipleTransition: TTimer;
GlowEffect1: TGlowEffect;
tmrGlow: TTimer;
Image2: TImage;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
procedure tmrStartTimer(Sender: TObject);
procedure tmrRiipleTransitionTimer(Sender: TObject);
procedure tmrGlowTimer(Sender: TObject);
private
{ Private declarations }
FInitialized: Boolean;
progress: Integer;
procedure LoadMainForm;
public
{ Public declarations }
end;
var
frmSplashScreen: TfrmSplashScreen;
implementation
{$R *.fmx}
uses System.Devices, Main;
procedure TfrmSplashScreen.FormCreate(Sender: TObject);
begin
// tmrStart.Enabled:= false;
// tmrStart.Interval:= 5000; // can be changed to improve startup speed in later releases
{$IFDEF MSWINDOWS}
frmSplashScreen.Transparency:=True;
{$ELSE}
frmSplashScreen.Transparency:=False;
{$ENDIF}
progress:=100;
RippleTransitionEffect1.Enabled:=True;
tmrRiipleTransition.Enabled:=True;
tmrGlow.Enabled:=False;
Image2.Visible:=False;
end;
procedure TfrmSplashScreen.FormPaint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
begin
//tmrStart.Enabled:= not FInitialized;
end;
procedure TfrmSplashScreen.LoadMainForm();
type
TFormClass = class of TForm;
var
form: TForm;
formClass: TFormClass;
begin
formClass:= nil;
formClass:= TfrmMain;
form:= formClass.Create(Application);
form.Show;
Application.MainForm:= form;
Close;
end;
procedure TfrmSplashScreen.tmrGlowTimer(Sender: TObject);
begin
GlowEffect1.Enabled:=False;
tmrGlow.Enabled:=False;
if not FInitialized then begin
FInitialized := true;
LoadMainForm;
end;
end;
procedure TfrmSplashScreen.tmrRiipleTransitionTimer(Sender: TObject);
begin
// prikaži efekt Riiple
if progress>0 then
begin
Dec(progress);
RippleTransitionEffect1.Progress:=progress;
end else
begin // ko pride do 0 ga končajin začni glow effekt
Image2.Visible:=True;
tmrRiipleTransition.Enabled:=False;
tmrGlow.Enabled:=True;
RippleTransitionEffect1.Enabled:=False;
GlowEffect1.Enabled:=True;
tmrGlow.Enabled:=True;
end;
end;
procedure TfrmSplashScreen.tmrStartTimer(Sender: TObject);
begin
exit;
tmrStart.Enabled := false;
if not FInitialized then begin
FInitialized := true;
LoadMainForm;
end;
end;
end.