Delphi 11.0开发Android计算器附源码

如题,题主基于RAD Studio 11.0,将远古时候XE编的windows计算器精简了下,加减乘除四则运算的部分用FireMonkey重新编译Android 64bit包,经测试在蓝蝶 BlueStacks虚拟机和华为 Mate 40 Pro运行正常,话不多说,上码......

1. 新建工程

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

2. 拖放控件:

20个Button,1个Label,1个Edit、1个Timer

3. 完整源码

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. 运行截图

 Enjoy it ! 

配套Android SDK、NDK、AdoptopenJDK下载包:https://pan.baidu.com/s/1aJeTQTKSzICDqMl_XDGifg?pwd=2023 

默认配置路径如下:

01-SDK-64bit&32bit

02-NDK-64bit

03-NDK-32bit

04-JDK-64bit&32bit

 

猜你喜欢

转载自blog.csdn.net/z1099043492/article/details/131005725
今日推荐