小弟初学delphi,应书中要求写下一计算器,请童鞋,老是,指教。该如何解决

小弟初学delphi,应书中要求写下一计算器,请童鞋,老是,指教。
如题。 可是我知道肯定BUG十足,当然,我自己都发现了3个BUG

1: 不知道怎么限定只能输入数字、
2:输入框能限定了输入大小,(我定义的是实数,所以我限定了9位),可是我不知道怎么限定通过点按button输入的位数。
3:当我输入第一个数之后点击运算符,然后不输入第二个数直接计算的话,就会BUG,我也不知道怎么判断了。当然我也用了IF来判断edit1.text是否为空。 可是不起作用。

4:就是肯定还有其它BUG,但是我找不到了,请各位大牛,童鞋,老是,来指教指教。

附上源码:(XP下编译) http://down.qiannao.com/space/file/maotao456/-4e0a-4f20-5206-4eab/-8ba1-7b97-5668.rar/.page
 
(win7下编译)
http://down.qiannao.com/space/file/maotao456/-4e0a-4f20-5206-4eab/-8ba1-7b97-56681.zip/.page

希望CSDN是能指引我的一盏明灯, 先谢谢了、

初来咋到,分数不多,还请各位见谅。

------解决方案--------------------
小技巧:您的
Delphi(Pascal) code

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.text:=edit1.text+'1';
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.text:=edit1.text+'2';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.text:=edit1.text+'3';
end;
//....

------解决方案--------------------
很遗憾,你的代码中没有涉及到 Edit 的输入。

其实,你可以将 Edit 改为 readonly, 然后处理窗体的键盘消息,将键盘按下的没用的按键值过滤掉,然后在处理到 Edit 中。

或者干脆不用 Edit,用 StaticText 来显示用户输入,将会好的多。