source: trunk/UFormMain.pas

Last change on this file was 3, checked in by chronos, 5 years ago
  • Modified: Odorik API moved to separate unit UOdorikApi.pas.
File size: 3.0 KB
Line 
1unit UFormMain;
2
3interface
4
5uses
6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
7 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
8 FMX.Layouts, FMX.Objects, FMX.Controls.Presentation, FMX.MultiView, IniFiles,
9 System.IOUtils, UOdorikApi;
10
11type
12 TFormMain = class(TForm)
13 MultiView1: TMultiView;
14 Layout1: TLayout;
15 ToolBar1: TToolBar;
16 SpeedButtonMenu: TSpeedButton;
17 Rectangle1: TRectangle;
18 VertScrollBox1: TVertScrollBox;
19 RectangleSettings: TRectangle;
20 LabelSettings: TLabel;
21 VertScrollBox2: TVertScrollBox;
22 LabelCredit: TLabel;
23 Timer1: TTimer;
24 RectangleCalls: TRectangle;
25 Label1: TLabel;
26 procedure RectangleSettingsClick(Sender: TObject);
27 procedure FormCreate(Sender: TObject);
28 procedure FormSaveState(Sender: TObject);
29 procedure Timer1Timer(Sender: TObject);
30 procedure FormShow(Sender: TObject);
31 procedure RectangleCallsClick(Sender: TObject);
32 private
33 { Private declarations }
34 public
35 OdorikApi: TOdorikApi;
36 Credit: Double;
37 ConfigFileName: string;
38 ReloadPending: Boolean;
39 procedure LoadConfig;
40 procedure SaveConfig;
41 end;
42
43var
44 FormMain: TFormMain;
45
46
47implementation
48
49{$R *.fmx}
50
51uses
52 UFormSettings, UFormCalls;
53
54procedure TFormMain.FormCreate(Sender: TObject);
55begin
56 OdorikApi := TOdorikApi.Create(nil);
57 ConfigFileName := TPath.Combine(TPath.GetHomePath, 'OdorikApi.ini');
58 LoadConfig;
59end;
60
61procedure TFormMain.FormSaveState(Sender: TObject);
62begin
63 SaveConfig;
64end;
65
66procedure TFormMain.FormShow(Sender: TObject);
67begin
68 TThread.CreateAnonymousThread(
69 procedure
70 begin
71 Credit := OdorikApi.GetCredit;
72 end).Start;
73end;
74
75procedure TFormMain.LoadConfig;
76var
77 IniFile: TIniFile;
78begin
79 IniFile := TIniFile.Create(ConfigFileName);
80 with IniFile do
81 try
82 OdorikApi.UserName := ReadString('General', 'UserName', '');
83 OdorikApi.Password := ReadString('General', 'Password', '');
84 OdorikApi.ServerUrl := ReadString('General', 'ServerUrl', 'https://www.odorik.cz/api/v1');
85 finally
86 IniFile.Free;
87 end;
88end;
89
90procedure TFormMain.RectangleCallsClick(Sender: TObject);
91begin
92 MultiView1.HideMaster;
93 FormCalls.Show;
94end;
95
96procedure TFormMain.RectangleSettingsClick(Sender: TObject);
97begin
98 MultiView1.HideMaster;
99 FormSettings.Show;
100end;
101
102procedure TFormMain.SaveConfig;
103var
104 IniFile: TIniFile;
105begin
106 IniFile := TIniFile.Create(ConfigFileName);
107 with IniFile do
108 try
109 WriteString('General', 'UserName', OdorikApi.UserName);
110 WriteString('General', 'Password', OdorikApi.Password);
111 WriteString('General', 'ServerUrl', OdorikApi.ServerUrl);
112 finally
113 IniFile.Free;
114 end;
115end;
116
117
118procedure TFormMain.Timer1Timer(Sender: TObject);
119begin
120 if ReloadPending then begin
121 ReloadPending := False;
122 Credit := OdorikApi.GetCredit;
123 end;
124 LabelCredit.Text := 'Credit: ' + FloatToStr(Credit) + ' Kè';
125end;
126
127end.
Note: See TracBrowser for help on using the repository browser.