鱼C论坛

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

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

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

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

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

x
刚开始学Delphi,还是看到零基础Delphi005,课内有一个上机练习,就是写完那个演示的计算器,以下是我写的,以及还有一些疑问,请大大帮我解惑,先上源码。
  1. unit Unit1;

  2. interface

  3. uses
  4.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  5.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.     Button2: TButton;
  10.     Button3: TButton;
  11.     Button4: TButton;
  12.     Button5: TButton;
  13.     Button6: TButton;
  14.     Button7: TButton;
  15.     Button8: TButton;
  16.     Button9: TButton;
  17.     Button10: TButton;
  18.     Edit1: TEdit;
  19.     Edit2: TEdit;
  20.     Edit3: TEdit;
  21.     Label1: TLabel;
  22.     Label2: TLabel;
  23.     procedure Button8Click(Sender: TObject);
  24.     procedure Edit1Click(Sender: TObject);
  25.     procedure Edit2Click(Sender: TObject);
  26.     procedure Edit3Click(Sender: TObject);
  27.     procedure Button1Click(Sender: TObject);
  28.     procedure Button2Click(Sender: TObject);
  29.     procedure Button3Click(Sender: TObject);
  30.     procedure Button4Click(Sender: TObject);
  31.     procedure Button5Click(Sender: TObject);
  32.     procedure Button6Click(Sender: TObject);
  33.     procedure Button7Click(Sender: TObject);
  34.     procedure Button9Click(Sender: TObject);
  35.     procedure Button10Click(Sender: TObject);
  36.   private
  37.     { Private declarations }
  38.   public
  39.     { Public declarations }
  40.   end;

  41. var
  42.   Form1: TForm1;

  43. implementation

  44. {$R *.dfm}

  45. procedure TForm1.Button10Click(Sender: TObject);
  46. begin
  47. Label1.Caption:='shr';
  48. Edit3.Text:='此功能不会写';
  49. //Edit3.Text:=StrToInt( Shr IntToStr(Edit1.Text) ); //向右位移,这样是错的
  50. //Edit3.Text:=StrToInt(IntToStr(Edit1.Text) Shr IntToStr(Edit2.Text));//向右位移这样也是错的

  51. end;

  52. procedure TForm1.Button1Click(Sender: TObject);
  53. begin
  54. Label1.Caption:='  +';
  55. Edit3.Text:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));//这行是加法
  56. end;

  57. procedure TForm1.Button2Click(Sender: TObject);
  58. begin
  59. Label1.Caption:='  -';
  60. Edit3.Text:=IntToStr(StrToInt(Edit1.Text)-StrToInt(Edit2.Text));//这行是减法
  61. end;

  62. procedure TForm1.Button3Click(Sender: TObject);
  63. begin
  64. Label1.Caption:='  ×';
  65. Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text));//这行是乘法
  66. end;

  67. procedure TForm1.Button4Click(Sender: TObject);
  68. begin
  69. Label1.Caption:='  ÷';
  70. Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text)); //这行是除法

  71. end;

  72. procedure TForm1.Button5Click(Sender: TObject);
  73. begin
  74. Label1.Caption:='Not';
  75. Edit3.Text:=IntToStr( Not StrToInt(Edit1.Text) );
  76. end;

  77. procedure TForm1.Button6Click(Sender: TObject);
  78. begin
  79. Label1.Caption:='And';
  80. Edit3.Text:=InttOStr(StrToInt(Edit1.Text) And StrToInt(Edit2.Text));
  81. end;

  82. procedure TForm1.Button7Click(Sender: TObject);
  83. begin
  84. Label1.Caption:='or';
  85. Edit3.Text:=IntToStr(StrToInt(Edit1.Text) Or StrToInt(Edit2.Text));
  86. end;

  87. procedure TForm1.Button8Click(Sender: TObject);
  88. begin
  89. Label1.Caption:='xor';
  90. Edit3.Text:=IntToStr(StrToInt(Edit1.Text) Xor StrToInt(Edit2.Text));
  91. end;

  92. procedure TForm1.Button9Click(Sender: TObject);
  93. begin
  94. Label1.Caption:='shl';
  95. Edit3.Text:='此功能不会写';
  96. //Edit3.Text:=StrToInt(IntToStr(Edit1.Text) Shl IntToStr(Edit2.Text)); //向左位移这样也是错的
  97. //Edit3.Text:=StrToInt( Shl IntToStr(Edit1.Text) );//这样也是错的
  98. end;

  99. procedure TForm1.Edit1Click(Sender: TObject);
  100. begin
  101. Edit1.Text:='';
  102. end;

  103. procedure TForm1.Edit2Click(Sender: TObject);
  104. begin
  105. Edit2.Text:='';
  106. end;

  107. procedure TForm1.Edit3Click(Sender: TObject);
  108. begin
  109. Edit3.Text:='';
  110. end;

  111. 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-5-2 12:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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