Changeset 3 for trunk/UFormMain.pas


Ignore:
Timestamp:
Aug 24, 2019, 10:44:11 AM (5 years ago)
Author:
chronos
Message:
  • Modified: Odorik API moved to separate unit UOdorikApi.pas.
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore set to
      Android
      Win32
      __recovery
      __history
  • trunk/UFormMain.pas

    r2 r3  
    77  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
    88  FMX.Layouts, FMX.Objects, FMX.Controls.Presentation, FMX.MultiView, IniFiles,
    9   System.IOUtils, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
    10   IdHTTP{$IFDEF ANDROID},IdSSLOpenSSLHeaders{$endif}, IdIOHandler, IdIOHandlerSocket,
    11   IdIOHandlerStack, IdSSL, IdSSLOpenSSL;
     9  System.IOUtils, UOdorikApi;
    1210
    1311type
     
    2321    VertScrollBox2: TVertScrollBox;
    2422    LabelCredit: TLabel;
    25     IdHTTP1: TIdHTTP;
    2623    Timer1: TTimer;
    27     IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    2824    RectangleCalls: TRectangle;
    2925    Label1: TLabel;
     
    3127    procedure FormCreate(Sender: TObject);
    3228    procedure FormSaveState(Sender: TObject);
    33     procedure ButtonReloadCreditClick(Sender: TObject);
    3429    procedure Timer1Timer(Sender: TObject);
    3530    procedure FormShow(Sender: TObject);
     
    3833    { Private declarations }
    3934  public
    40     UserName: string;
    41     Password: string;
    42     ServerUrl: string;
     35    OdorikApi: TOdorikApi;
    4336    Credit: Double;
    4437    ConfigFileName: string;
     
    4639    procedure LoadConfig;
    4740    procedure SaveConfig;
    48     procedure GetCredit;
    49     function SendGet(Path: string; Parameters: string = ''): string;
    5041  end;
    5142
     
    6152  UFormSettings, UFormCalls;
    6253
    63 procedure TFormMain.ButtonReloadCreditClick(Sender: TObject);
    64 begin
    65   GetCredit;
    66 end;
    67 
    6854procedure TFormMain.FormCreate(Sender: TObject);
    6955begin
    70   {$IFDEF ANDROID}
    71   IdOpenSSLSetLibPath(System.IOUtils.TPath.GetDocumentsPath);
    72   {$ENDIF}
     56  OdorikApi := TOdorikApi.Create(nil);
    7357  ConfigFileName := TPath.Combine(TPath.GetHomePath, 'OdorikApi.ini');
    7458  LoadConfig;
     
    8569    procedure
    8670    begin
    87       GetCredit;
     71      Credit := OdorikApi.GetCredit;
    8872    end).Start;
    89 end;
    90 
    91 procedure TFormMain.GetCredit;
    92 var
    93   Response: string;
    94   Value: Extended;
    95 begin
    96   Response := SendGet('/balance');
    97   if Response <> '' then begin
    98     Response := StringReplace(Response, '.', FormatSettings.DecimalSeparator, [rfReplaceAll]);
    99     if TryStrToFloat(Response, Value) then
    100       Credit := Value
    101       else Credit := 0;
    102   end else Credit := 0;
    10373end;
    10474
     
    11080  with IniFile do
    11181  try
    112     UserName := ReadString('General', 'UserName', '');
    113     Password := ReadString('General', 'Password', '');
    114     ServerUrl := ReadString('General', 'ServerUrl', 'https://www.odorik.cz/api/v1');
     82    OdorikApi.UserName := ReadString('General', 'UserName', '');
     83    OdorikApi.Password := ReadString('General', 'Password', '');
     84    OdorikApi.ServerUrl := ReadString('General', 'ServerUrl', 'https://www.odorik.cz/api/v1');
    11585  finally
    11686    IniFile.Free;
     
    137107  with IniFile do
    138108  try
    139     WriteString('General', 'UserName', UserName);
    140     WriteString('General', 'Password', Password);
    141     WriteString('General', 'ServerUrl', ServerUrl);
     109    WriteString('General', 'UserName', OdorikApi.UserName);
     110    WriteString('General', 'Password', OdorikApi.Password);
     111    WriteString('General', 'ServerUrl', OdorikApi.ServerUrl);
    142112  finally
    143113    IniFile.Free;
     
    145115end;
    146116
    147 function TFormMain.SendGet(Path: string; Parameters: string = ''): string;
    148 var
    149   Url: string;
    150 begin
    151   if (ServerUrl <> '') and (UserName <> '') and (Password <> '') then begin
    152     Url := ServerUrl + Path + '?user=' + UserName + '&password=' + Password;
    153     if Parameters <> '' then Url := Url + '&' + Parameters;
    154     Result := IdHTTP1.Get(Url);
    155   end else Result := '';
    156 end;
    157117
    158118procedure TFormMain.Timer1Timer(Sender: TObject);
     
    160120  if ReloadPending then begin
    161121    ReloadPending := False;
    162     GetCredit;
     122    Credit := OdorikApi.GetCredit;
    163123  end;
    164124  LabelCredit.Text := 'Credit: ' + FloatToStr(Credit) + ' Kè';
Note: See TracChangeset for help on using the changeset viewer.