📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, StdCtrls, ActnList, Clipbrd;
type
TCalc_form = class(TForm)
Panel1: TPanel;
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;
Bevel1: TBevel;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
H1: TMenuItem;
H2: TMenuItem;
N9: TMenuItem;
A1: TMenuItem;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Button22: TButton;
Button23: TButton;
Button24: TButton;
Button25: TButton;
Button26: TButton;
Button27: TButton;
ActionList1: TActionList;
paste: TAction;
copy: TAction;
A2: TMenuItem;
A3: TMenuItem;
procedure N6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure copyExecute(Sender: TObject);
procedure pasteExecute(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure A3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Calc_form: TCalc_form;
start_flag,float_flag,mem_flag: Boolean; //设置开始和浮点标志
n: Integer;
Temp1: String;
Temp2,mem: real;
implementation
uses Unit2;
{$R *.dfm}
procedure TCalc_form.N6Click(Sender: TObject);
begin
Calc_form.Width:=260;
Calc_form.Height:=244;
//菜单查看里的 打勾标记
N5.Checked:=false;
N6.Checked:=true;
//设置透明
//Form1.AlphaBlend:=true;
//Form1.AlphaBlendValue:=99;
//设置标准型按钮的位置
button1.Visible:=true;
button1.Left:=56;
button1.Top:=128;
button4.Visible:=true;
button4.Left:=56;
button4.Top:=96;
button7.Visible:=true;
button7.Left:=56;
button7.Top:=64;
button19.Visible:=true;
button19.Left:=56;
button19.Top:=160;
button2.Visible:=true;
button2.Left:=94;
button2.Top:=128;
button5.Visible:=true;
button5.Left:=94;
button5.Top:=96;
button8.Visible:=true;
button8.Left:=94;
button8.Top:=64;
button20.Visible:=true;
button20.Left:=94;
button20.Top:=160;
button3.Visible:=true;
button3.Left:=132;
button3.Top:=128;
button6.Visible:=true;
button6.Left:=132;
button6.Top:=96;
button9.Visible:=true;
button9.Left:=132;
button9.Top:=64;
button21.Visible:=true;
button21.Left:=132;
button21.Top:=160;
button13.Visible:=true;
button13.Left:=170;
button13.Top:=64;
button14.Visible:=true;
button14.Left:=170;
button14.Top:=96;
button15.Visible:=true;
button15.Left:=170;
button15.Top:=128;
button22.Visible:=true;
button22.Left:=170;
button22.Top:=160;
button16.Visible:=true;
button16.Left:=209;
button16.Top:=64;
button17.Visible:=true;
button17.Left:=209;
button17.Top:=96;
button18.Visible:=true;
button18.Left:=209;
button18.Top:=128;
button23.Visible:=true;
button23.Left:=209;
button23.Top:=160;
button10.Visible:=true;
button10.Left:=56;
button10.Top:=32;
button11.Visible:=true;
button11.Left:=136;
button11.Top:=32;
button12.Visible:=true;
button12.Left:=192;
button12.Top:=32;
button24.Visible:=true;
button24.Left:=13;
button24.Top:=64;
button25.Visible:=true;
button25.Left:=13;
button25.Top:=96;
button26.Visible:=true;
button26.Left:=13;
button26.Top:=128;
button27.Visible:=true;
button27.Left:=13;
button27.Top:=160;
bevel1.Visible:=true;
bevel1.Left:=16;
bevel1.Top:=32;
end;
procedure TCalc_form.FormCreate(Sender: TObject);
begin
//EDIT里文本右对齐
SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_right);
end;
procedure TCalc_form.Button1Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '1';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '1';
end;
procedure TCalc_form.Button2Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '2';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '2';
end;
procedure TCalc_form.Button3Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '3';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '3';
end;
procedure TCalc_form.Button4Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '4';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '4';
end;
procedure TCalc_form.Button5Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '5';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '5';
end;
procedure TCalc_form.Button6Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '6';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '6';
end;
procedure TCalc_form.Button7Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '7';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '7';
end;
procedure TCalc_form.Button8Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '8';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '8';
end;
procedure TCalc_form.Button9Click(Sender: TObject);
begin
if start_flag = False then
begin
Edit1.Text := '9';
start_flag := True
end
else
Edit1.Text := Edit1.Text + '9';
end;
procedure TCalc_form.Button19Click(Sender: TObject);
begin
if start_flag = False then //当开始标志为 False
begin
Edit1.Text := '0.'; //显示0.
start_flag := True; //开始标志为True
float_flag := True //浮点标志为True
end
else //否则输出0
Edit1.Text := Edit1.Text + '0';
end;
procedure TCalc_form.Button21Click(Sender: TObject);
begin
if float_flag = False then
begin
if start_flag = False then
begin
Edit1.Text := '0.';
start_flag := True;
float_flag := True
end
else
begin
Edit1.Text := Edit1.Text + '.';
float_flag := True
end;
end;
end;
procedure TCalc_form.Button22Click(Sender: TObject);
begin
n := 1;
Temp1 := Edit1.Text;
Edit1.Clear;
end;
procedure TCalc_form.Button15Click(Sender: TObject);
begin
n := 2;
Temp1 := Edit1.Text;
Edit1.Clear;
end;
procedure TCalc_form.Button14Click(Sender: TObject);
begin
n := 3;
Temp1 := Edit1.Text;
Edit1.Clear;
end;
procedure TCalc_form.Button13Click(Sender: TObject);
begin
n := 4;
Temp1 := Edit1.Text;
Edit1.Clear;
end;
procedure TCalc_form.Button23Click(Sender: TObject);
begin
case n of
1 : Temp2 := StrToFloat(Temp1) + StrToFloat(Edit1.Text);
2 : Temp2 := StrToFloat(Temp1) - StrToFloat(Edit1.Text);
3 : Temp2 := StrToFloat(Temp1) * StrToFloat(Edit1.Text);
4 : if StrToFloat(Edit1.Text)=0 then
begin
Edit1.Text := '除数不能为0';
Exit;
end
else
Temp2 := StrToFloat(Temp1) / StrToFloat(Edit1.Text);
end;
Edit1.Text := FloatToStr(Temp2);
end;
procedure TCalc_form.Button20Click(Sender: TObject);
var
num : real;
begin
num := StrToFloat(Edit1.Text);
num := -num;
Edit1.Text:=FloaTtoStr(num);
end;
procedure TCalc_form.Button16Click(Sender: TObject);
var
num : real;
begin
num := StrToFloat(Edit1.Text);
if num>=0 then
begin
num := Sqrt(num);
Edit1.Text := FloaTtoStr(num);
end
else
Application.MessageBox('该数开方出错,请检查!','提示信息',MB_OK)
end;
procedure TCalc_form.Button18Click(Sender: TObject);
var
num : real;
begin
num := StrToFloat(Edit1.Text);
num := 1/num;
Edit1.Text := FloaTtoStr(num);
end;
procedure TCalc_form.Button10Click(Sender: TObject);
var
i,j : Integer;
s1,s2 : String;
begin
i := Edit1.Gettextlen();
if i>1 then
begin
s1 := Edit1.Text;
s2 := s1[i];
Edit1.Text := '';
for j := 1 to i-1 do
Edit1.Text := Edit1.Text + s1[j];
if s2 = '.' then
float_flag := False;
end
else
begin
Edit1.Text := '0';
start_flag := False;
end;
end;
procedure TCalc_form.copyExecute(Sender: TObject);
begin
Edit1.SelectAll;
Edit1.CopyToClipboard;
end;
procedure TCalc_form.pasteExecute(Sender: TObject);
begin
Edit1.PasteFromClipboard;
end;
procedure TCalc_form.Button12Click(Sender: TObject);
begin
Edit1.Clear;
end;
procedure TCalc_form.Button24Click(Sender: TObject);
begin
mem_flag := False;
end;
procedure TCalc_form.Button25Click(Sender: TObject);
begin
mem := StrToFloat(Edit1.Text);
mem_flag := True;
end;
procedure TCalc_form.Button26Click(Sender: TObject);
begin
if mem_flag = True then
Edit1.Text := FloatToStr(mem)
else
Application.MessageBox('没有数据存储,请检查!','提示信息',MB_OK);
end;
procedure TCalc_form.Button27Click(Sender: TObject);
begin
if mem_flag = True then
mem := mem + StrToFloat(Edit1.Text)
else
begin
mem := StrToFloat(Edit1.Text);
mem_flag := True;
end;
end;
procedure TCalc_form.A3Click(Sender: TObject);
begin
Form2.Show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -