一刀客 发表于 2008-3-12 21:25

计算器——小数点右边不能输入数字?!

小数点右边不能输入数字!!!!!!!
我用panel来显示运算结果,刚刚开始学Delphi,还不懂得如何写代码让Edit.text右对齐,只好用panel了。
==================================
[attach]32917[/attach]
==================================
定义了三个全局变量:
  xsd:boolean=true;//xsd是小数点的意思,默认是没有点击小数点,设为true。当点击小数点的时候,其值为 false
  y:string;
  m:integer;
当按下“1”的时候,代码如下
if xsd then
   if panel1.Caption='0.' then
      panel1.Caption:='1.'
   else
      if panel1.Caption<>'0.' then
         begin
            y:=panel1.Caption;
            m:=length(y);
            setlength(y,m-1);
            panel1.Caption:=y+'1'+'.'
         end
else
  if xsd=false then //问题应该在这里了,但我不知道错在哪里!
    begin
      y:=panel1.Caption;
      panel1.Caption:=y+'1'
    end;

end;
如何写代码让Edit.text右对齐?大家帮帮忙吧!

keneth 发表于 2008-3-21 17:34

基本上就是这样了,除了一些begin end ;少了之处应该没什么了。
如果不能出数字,看一下你的小数点你是怎么处理的。

按照你的思路,你要在FormCreate事件里把xsd:=true
然后按小数点就触发xsd:=false

keneth 发表于 2008-3-21 17:46

Edit.text的右对齐我也不会,希望哪个高手指点一下。

还有就是你这个数字键的输入还有一个问题,就是当计算之后(比如经过+计算),你再按数字,应该做一个清零处理,否则再按的数字又会接着算出来的结果。

zhoukai 发表于 2008-4-16 09:53

对齐问题

在Delphi中edit控件的限制很多。如不能换行,当然也不能右对齐,但是我们可以用memo来解决右对齐的问题。memo1.Alignment := taRightJustify;希望对你有所帮助;

makebest 发表于 2008-4-16 10:14

如果是我来处理的话, 我不会把小数点与数字放在一起, 而只是记一下有几个数字是在小数点右边的.

页: [1]

编程论坛