刚写的计算器,出自——零基础Delpghi005
刚开始学Delphi,还是看到零基础Delphi005,课内有一个上机练习,就是写完那个演示的计算器,以下是我写的,以及还有一些疑问,请大大帮我解惑,先上源码。unit Unit1;interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button8Click(Sender: TObject);
procedure Edit1Click(Sender: TObject);
procedure Edit2Click(Sender: TObject);
procedure Edit3Click(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 Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button10Click(Sender: TObject);
begin
Label1.Caption:='shr';
Edit3.Text:='此功能不会写';
//Edit3.Text:=StrToInt( Shr IntToStr(Edit1.Text) ); //向右位移,这样是错的
//Edit3.Text:=StrToInt(IntToStr(Edit1.Text) Shr IntToStr(Edit2.Text));//向右位移这样也是错的
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:='+';
Edit3.Text:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));//这行是加法
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:='-';
Edit3.Text:=IntToStr(StrToInt(Edit1.Text)-StrToInt(Edit2.Text));//这行是减法
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Label1.Caption:='×';
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text));//这行是乘法
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Label1.Caption:='÷';
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text)); //这行是除法
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Label1.Caption:='Not';
Edit3.Text:=IntToStr( Not StrToInt(Edit1.Text) );
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Label1.Caption:='And';
Edit3.Text:=InttOStr(StrToInt(Edit1.Text) And StrToInt(Edit2.Text));
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Label1.Caption:='or';
Edit3.Text:=IntToStr(StrToInt(Edit1.Text) Or StrToInt(Edit2.Text));
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Label1.Caption:='xor';
Edit3.Text:=IntToStr(StrToInt(Edit1.Text) Xor StrToInt(Edit2.Text));
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Label1.Caption:='shl';
Edit3.Text:='此功能不会写';
//Edit3.Text:=StrToInt(IntToStr(Edit1.Text) Shl IntToStr(Edit2.Text)); //向左位移这样也是错的
//Edit3.Text:=StrToInt( Shl IntToStr(Edit1.Text) );//这样也是错的
end;
procedure TForm1.Edit1Click(Sender: TObject);
begin
Edit1.Text:='';
end;
procedure TForm1.Edit2Click(Sender: TObject);
begin
Edit2.Text:='';
end;
procedure TForm1.Edit3Click(Sender: TObject);
begin
Edit3.Text:='';
end;
end.
问题1:向左位移(shl)函数和向右位移(shr)函数怎么用,在源码里那几行我有注释,课内小甲鱼老师也没有讲解。
问题2:关于Not、And、Or、Xor、Shl、Shr的算法,有没有详细一点的讲解,视频看了3遍,看的时候我倒是能记住,一转头就忘了,一头雾水所有东西都混在一起了,特别是And,那个按位取反好像还要加一减一什么的,还有符号位,我高中没毕业....是在弄不清
问题3:我用的是Rad Studio xe6,也就是Delphi xe6,我写出来的程序就是计算器这种简单的程序都有10.2MB,小甲鱼老师视频里我记得好像是520KB左右,我也问过别人别人问我是不是在debug模式下编译的,xe6默认的生成文件夹的名字就是‘debug’,然后他就叫我去看看是不是在deug模式下编译的就没声了,我也不知道是这个模式下编译的程序是会比较大还是比较小,有没有什么解决办法,写好的程序都传不上论坛了。
写好的程序已经上传到360云盘,有兴趣的朋友可以下载看看。
http://yunpan.cn/QakyTnUpN3dp6 (提取码:f6ea)
是 Delphi吧!!! Debug 编译的 很大·!!用Release 应该是 2M 多点!! 无所谓无的 发表于 2014-8-19 23:23
Debug 编译的 很大·!!用Release 应该是 2M 多点!!
感谢你我百度到现在终于找到在哪里切换了 光看视频不行,同时找本书,推荐delphi5开发人员指南、delphi精要等等 delphi版本越高,编译出来的程序体积也越大,不过编译Release版,再用压缩壳压缩下程序,大小也能接受。。。。 comeheres 发表于 2014-8-20 00:02
delphi版本越高,编译出来的程序体积也越大,不过编译Release版,再用压缩壳压缩下程序,大小也能接受。。 ...
请问你知道怎样吧Autosize的默认属性设置为False吗 我也才刚刚学习,先收藏哈!!! 路过支持下,,, 头号甜心.Beauti 发表于 2014-8-20 00:14
请问你知道怎样吧Autosize的默认属性设置为False吗
要改源码吧,或者已经继承下该控件的基类,自己写个新控件 自己 打成了 已经,额 谢谢分享 谢谢分享 学习一下{:9_241:}
页:
[1]