📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Buttonn5: TButton;
Buttonn4: TButton;
Buttonn3: TButton;
Buttonn2: TButton;
Buttonadd: TButton;
Buttonn9: TButton;
Buttonn8: TButton;
Buttonn7: TButton;
Buttonn6: TButton;
Buttonaddsub: TButton;
Buttonpoint: TButton;
ButtonDiv: TButton;
Buttonmul: TButton;
Buttonsub: TButton;
Button0: TButton;
Buttonequal: TButton;
Buttonc: TButton;
Buttondelete: TButton;
RadioButtonDec: TRadioButton;
RadioButtonBin: TRadioButton;
RadioButtonBa: TRadioButton;
procedure Button1Click(Sender: TObject);
procedure Buttonn2Click(Sender: TObject);
procedure Buttonn3Click(Sender: TObject);
procedure Buttonn4Click(Sender: TObject);
procedure Buttonn5Click(Sender: TObject);
procedure Buttonn6Click(Sender: TObject);
procedure Buttonn7Click(Sender: TObject);
procedure Buttonn8Click(Sender: TObject);
procedure Buttonn9Click(Sender: TObject);
procedure ButtonaddClick(Sender: TObject);
procedure ButtonequalClick(Sender: TObject);
procedure ButtonsubClick(Sender: TObject);
procedure ButtonmulClick(Sender: TObject);
procedure ButtonDivClick(Sender: TObject);
procedure Button0Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ButtoncClick(Sender: TObject);
procedure ButtonpointClick(Sender: TObject);
function Dectobin(dec:integer):string;
function BinToDec(bin:string):integer;
procedure RadioButtonBinClick(Sender: TObject);
procedure RadioButtonDecClick(Sender: TObject);
procedure ButtondeleteClick(Sender: TObject);
procedure ButtonaddsubClick(Sender: TObject);
function BinToBa(bin:string):string;
procedure RadioButtonBaClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
num1,num2,result:integer;
operator:string;
signnum:integer;
Numflag:boolean;
edit:integer;
implementation
{$R *.dfm}
function Tform1.Dectobin(dec:integer):string;
begin
result:='';
while(Dec>=2)do
begin
result:=IntToStr(trunc(Dec mod 2))+result;
Dec:=Dec div 2 ;
end;
result :=IntToStr(Dec)+result;
end;
function Tform1.BinToDec(bin:string):integer;
var
i:integer;
begin
result:=0;
for i:=1 to length(bin) do
begin
result:=result+round(StrToInt(copy(bin,i,1))*intpower(2,length(bin)-i));
end;
end ;
function Tform1.BinToBa(bin:string):string;
var
i,a:integer;
j:integer;
begin
j:=0;
if(length(bin) mod 3=1) then
begin
bin:='00'+bin;
end
else if( length(bin) mod 3=2) then
begin
bin:='0'+bin ;
end
else bin:=bin ;
result:='';
a:=0;
while(3*j+3<=length(bin)) do
begin
a:=0;
for i:=0 to 2 do
begin
a:=a+round(StrToInt(copy(bin,length(bin)-3*j-i,1))*intpower(2,i));
end;
result:=inttostr(a)+result;
j:=j+1;
end;
end ;
procedure TForm1.Button1Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'1'
else
begin
edit1.Text:='1' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn2Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'2'
else
begin
edit1.Text:='2' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn3Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'3'
else
begin
edit1.Text:='3' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn4Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'4'
else
begin
edit1.Text:='4' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn5Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'5'
else
begin
edit1.Text:='5' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn6Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'6'
else
begin
edit1.Text:='6' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn7Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'7'
else
begin
edit1.Text:='7' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn8Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'8'
else
begin
edit1.Text:='8' ;
numflag:=false;
end ;
end;
procedure TForm1.Buttonn9Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'9'
else
begin
edit1.Text:='9' ;
numflag:=false;
end ;
end;
procedure TForm1.ButtonaddClick(Sender: TObject);
begin
signnum:=signnum+1;
if(signnum=1) then
begin
if(RadioButtonDec.checked=true)then
num1:=strtoint(edit1.text)
else
num1:=BintoDec(edit1.text);
operator:='+';
edit1.text:='';
end
else
begin
if(RadioButtonDec.checked=true)then
num2:=strtoint(edit1.text)
else
num2:=BintoDec(edit1.text);
if(operator='+') then
result:=num1+num2
else if(operator='-') then
result:=num1-num2
else if(operator='*') then
result:=num1*num2
else if(operator='/') then
result:=num1 div num2 ;
if(RadioButtonDec.checked=true)then
edit1.text:=inttostr(result)
else
edit1.text:=dectobin((result));
num1:=result;
operator:='+';
numflag:=true;
end ;
end;
procedure TForm1.ButtonequalClick(Sender: TObject);
begin
if(RadioButtonDec.checked=true)then
num2:=strtoint(edit1.text)
else
num2:=BintoDec(edit1.text);
if(operator='+') then
result:=num1+num2
else if(operator='-') then
result:=num1-num2
else if(operator='*') then
result:=num1*num2
else if(operator='/') then
result:=num1 div num2 ;
if(RadioButtonDec.checked=true)then
edit1.text:=inttostr(result)
else
edit1.text:=dectobin((result));
numflag:=true;
end;
procedure TForm1.ButtonsubClick(Sender: TObject);
begin
signnum:=signnum+1;
if(signnum=1) then
begin
num1:=strtoint(edit1.text);
operator:='-';
edit1.text:='';
end
else
begin
num2:=strtoint(edit1.text);
if(operator='+') then
result:=num1+num2
else if(operator='-') then
result:=num1-num2
else if(operator='*') then
result:=num1*num2
else if(operator='/') then
result:=num1 div num2 ;
edit1.text:=inttostr(result);
num1:=result;
operator:='-';
numflag:=true;
end ;
end;
procedure TForm1.ButtonmulClick(Sender: TObject);
begin
signnum:=signnum+1;
if(signnum=1) then
begin
num1:=strtoint(edit1.text);
operator:='*';
edit1.text:='';
end
else
begin
num2:=strtoint(edit1.text);
if(operator='+') then
result:=num1+num2
else if(operator='-') then
result:=num1-num2
else if(operator='*') then
result:=num1*num2
else if(operator='/') then
result:=num1 div num2 ;
edit1.text:=inttostr(result);
num1:=result;
operator:='*';
numflag:=true;
end ;
end;
procedure TForm1.ButtonDivClick(Sender: TObject);
begin
signnum:=signnum+1;
if(signnum=1) then
begin
num1:=strtoint(edit1.text);
operator:='/';
edit1.text:='';
end
else
begin
num2:=strtoint(edit1.text);
if(operator='+') then
result:=num1+num2
else if(operator='-') then
result:=num1-num2
else if(operator='*') then
result:=num1*num2
else if(operator='/') then
result:=num1 div num2 ;
edit1.text:=inttostr(result);
num1:=result;
operator:='/';
numflag:=true;
end ;
end;
procedure TForm1.Button0Click(Sender: TObject);
begin
if(numflag=false) then
edit1.text:=edit1.Text+'0'
else
begin
edit1.Text:='0' ;
numflag:=false;
end ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
signnum:=0;
numflag:=false;
end;
procedure TForm1.ButtoncClick(Sender: TObject);
begin
edit1.text:='0';
numflag:=true;
signnum:=0;
end;
procedure TForm1.ButtonpointClick(Sender: TObject);
begin
if(pos('.',edit1.Text)>0) then
edit1.Text:=edit1.Text
else edit1.Text:=edit1.Text+'.';
end;
procedure TForm1.RadioButtonBinClick(Sender: TObject);
begin
buttonn2.enabled:=false;
buttonn3.enabled:=false;
buttonn4.enabled:=false;
buttonn5.enabled:=false;
buttonn6.enabled:=false;
buttonn7.enabled:=false;
buttonn8.enabled:=false;
buttonn9.enabled:=false;
buttonpoint.enabled:=false;
//
edit1.Text:=Dectobin(strtoint(edit1.Text));
end;
procedure TForm1.RadioButtonDecClick(Sender: TObject);
begin
buttonn2.enabled:=true;
buttonn3.enabled:=true;
buttonn4.enabled:=true;
buttonn5.enabled:=true;
buttonn6.enabled:=true;
buttonn7.enabled:=true;
buttonn8.enabled:=true;
buttonn9.enabled:=true;
buttonpoint.enabled:=true;
//
edit1.Text:=InttoStr(BinToDec(edit1.Text));
end;
procedure TForm1.ButtondeleteClick(Sender: TObject);
begin
edit1.Text:=copy(edit1.Text,1,length(edit1.Text)-1);
end;
procedure TForm1.ButtonaddsubClick(Sender: TObject);
begin
if(strtoint(edit1.text)>0) then
edit:= strtoint(edit1.Text)*-1
else edit:= strtoint(edit1.Text)*-1;
edit1.Text:=inttostr(edit);
end;
procedure TForm1.RadioButtonBaClick(Sender: TObject);
begin
buttonn2.enabled:=true;
buttonn3.enabled:=true;
buttonn4.enabled:=true;
buttonn5.enabled:=true;
buttonn6.enabled:=true;
buttonn7.enabled:=true;
buttonn8.enabled:=true;
buttonn9.enabled:=true;
buttonpoint.enabled:=true;
edit1.Text:= bintoba(edit1.Text)
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -