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

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Delphi是一种面向对象的可视化编程语言,所以编写计算器源码可以轻松实现。下面我将给出一个简单的Delphi计算器源码示例: ```delphi unit CalculatorForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TCalculatorForm = class(TForm) Display: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Button0: TButton; ButtonAdd: TButton; ButtonSubtract: TButton; ButtonMultiply: TButton; ButtonDivide: TButton; ButtonCalculate: TButton; procedure ButtonNumberClick(Sender: TObject); procedure ButtonOperatorClick(Sender: TObject); procedure ButtonCalculateClick(Sender: TObject); private { Private declarations } operatorPressed: Boolean; calculation: String; public { Public declarations } end; var CalculatorForm: TCalculatorForm; implementation {$R *.dfm} procedure TCalculatorForm.ButtonNumberClick(Sender: TObject); begin if operatorPressed then begin Display.Text := ''; operatorPressed := False; end; Display.Text := Display.Text + (Sender as TButton).Caption; end; procedure TCalculatorForm.ButtonOperatorClick(Sender: TObject); begin calculation := Display.Text + (Sender as TButton).Caption; operatorPressed := True; end; procedure TCalculatorForm.ButtonCalculateClick(Sender: TObject); begin Display.Text := FloatToStr(Evaluate(calculation + Display.Text)); end; function Evaluate(s: String): Double; begin Result := 0.0; try Result := StrToFloat(s); except Result := 0.0; end; end; end. ``` 这段代码实现了一个简单的计算器功能。用户可以点击按钮输入数字,点击运算符按钮实现基本的加减乘除操作,并且点击”=”按钮获取运算结果。在Delphi中,可以轻松通过处理按钮点击事件来实现这些功能。通过简单的表达式计算函数Evaluate,我们可以将字符串转换为数值并进行实际计算。这个计算器源码只是一个简单的示例,实际应用中可能需要更复杂的逻辑来处理各种操作和错误情况。希望这个例子能给您一些启发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Johnny|俊伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值