Delphi 11.0 develops Android calculator with source code

As in the title, the subject is based on RAD Studio 11.0, which simplifies the Windows calculator compiled by XE in ancient times. The addition, subtraction, multiplication and division of the four arithmetic operations is recompiled with FireMonkey. The Android 64bit package has been tested to run normally on the Blue Butterfly BlueStacks virtual machine and Huawei Mate 40 Pro. Not much to say, the code...

1. New construction

Delphi 11.0 -> File  -> New -> Multi-Device Application - Delphi

2. Drag and drop controls:

20 Buttons, 1 Label, 1 Edit, 1 Timer

3. Complete source code

unit Unit1;

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.Controls.Presentation, FMX.Edit;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Button18: TButton;
    Button19: TButton;
    Button20: TButton;
    Label1: TLabel;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    num: array[1..20] of Char; // 计算器
    i: Integer; //
    a, b, s: Extended; //
    z: Char; //

  end;

var
  Form1: TForm1;
  time1: TTime; //
  num: array[1..20] of Char; // 计算器
  i: Integer; //
  a, b, s: Extended; //
  z: Char; //

implementation

{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}

procedure TForm1.Button10Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '5';
  num[i] := '5';
  i := i + 1;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '6';
  num[i] := '6';
  i := i + 1;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  a := strtofloat(Edit1.Text);
  z := '*';
  i := 1;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '1';
  num[i] := '1';
  i := i + 1;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '2';
  num[i] := '2';
  i := i + 1;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '3';
  num[i] := '3';
  i := i + 1;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  a := strtofloat(Edit1.Text);
  z := '/';
  i := 1;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '0';
  num[i] := '0';
  i := i + 1;
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '.';
end;

procedure TForm1.Button19Click(Sender: TObject);
var
  X: Extended;
begin
  X := strtofloat(Edit1.Text);
  X := -X;
  Edit1.Text := FloatToStr(X);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  j: Integer;
begin
  Edit1.Text := '';
  i := i - 1;
  for j := 1 to i - 1 do
    Edit1.Text := Edit1.Text + num[j];
end;

procedure TForm1.Button20Click(Sender: TObject);
var
  j: Integer;
begin
  b := strtofloat(Edit1.Text);
  case z of
    '+':
      s := a + b;
    '-':
      s := a - b;
    '*':
      s := a * b;
    '/':
      s := a / b;
  end;
  Edit1.Text := FloatToStr(s);
  i := 1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Edit1.Text := '';
  i := 1;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  a := strtofloat(Edit1.Text);
  z := '+';
  i := 1;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '7';
  num[i] := '7';
  i := i + 1;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '8';
  num[i] := '8';
  i := i + 1;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '9';
  num[i] := '9';
  i := i + 1;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  a := strtofloat(Edit1.Text);
  z := '-';
  i := 1;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  if i = 1 then
    Edit1.Text := '';
  Edit1.Text := Edit1.Text + '4';
  num[i] := '4';
  i := i + 1;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Text := '当前系统时间:' + DateTimeToStr(now);
end;

end.

4. Run the screenshot

 Enjoy it ! 

Supporting Android SDK, NDK, AdoptopenJDK download package: https://pan.baidu.com/s/1aJeTQTKSzICDqMl_XDGifg?pwd=2023 

The default configuration path is as follows:

01-SDK-64bit&32bit

02-NDK-64bit

03-NDK-32bit

04-JDK-64bit&32bit

 

Guess you like

Origin blog.csdn.net/z1099043492/article/details/131005725
Recommended