鱼C论坛

 找回密码
 立即注册
查看: 2973|回复: 13

[技术交流] 刚写的计算器,出自——零基础Delpghi005

[复制链接]
发表于 2014-8-19 22:14:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
刚开始学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.
2014-08-19_22-09-55.jpg

问题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模式下编译的就没声了,我也不知道是这个模式下编译的程序是会比较大还是比较小,有没有什么解决办法,写好的程序都传不上论坛了。
2014-08-19_22-06-15.jpg

2014-08-19_22-10-41.jpg


写好的程序已经上传到360云盘,有兴趣的朋友可以下载看看。
http://yunpan.cn/QakyTnUpN3dp6 (提取码:f6ea)


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-19 23:21:08 | 显示全部楼层
是 Delphi吧!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-19 23:23:04 | 显示全部楼层
Debug 编译的 很大·!!用Release 应该是 2M 多点!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-19 23:38:34 | 显示全部楼层
无所谓无的 发表于 2014-8-19 23:23
Debug 编译的 很大·!!用Release 应该是 2M 多点!!

感谢你  我百度到现在终于找到在哪里切换了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-19 23:58:21 | 显示全部楼层
光看视频不行,同时找本书,推荐delphi5开发人员指南、delphi精要等等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-20 00:02:46 | 显示全部楼层
delphi版本越高,编译出来的程序体积也越大,不过编译Release版,再用压缩壳压缩下程序,大小也能接受。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-20 00:14:25 | 显示全部楼层
comeheres 发表于 2014-8-20 00:02
delphi版本越高,编译出来的程序体积也越大,不过编译Release版,再用压缩壳压缩下程序,大小也能接受。。 ...

请问你知道怎样吧Autosize的默认属性设置为False吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-20 08:34:09 | 显示全部楼层
我也才刚刚学习,先收藏哈!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-20 09:13:39 | 显示全部楼层
路过  支持下,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-20 09:43:24 From FishC Mobile | 显示全部楼层
头号甜心.Beauti 发表于 2014-8-20 00:14
请问你知道怎样吧Autosize的默认属性设置为False吗

要改源码吧,或者已经继承下该控件的基类,自己写个新控件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-20 09:44:10 From FishC Mobile | 显示全部楼层
自己 打成了 已经,额
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-20 16:17:46 | 显示全部楼层
谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-20 16:21:57 | 显示全部楼层
谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-26 20:37:06 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表