初学delphi,做个计算器,遇到点问题,望大家点拨(0分)

  • 主题发起人 主题发起人 wusongping1983
  • 开始时间 开始时间
W

wusongping1983

Unregistered / Unconfirmed
GUEST, unregistred user!
本人接触delphi,打算做个计算器,但遇到一些问题,望大家指点下。
先说我的思路:比如 先按计算器中的 1,这个时候在 edit1 中显示 1,同时把 1 保存到 一个全局变量 x 中,如果接下来 按 2 ,这个时候 我先判断 这个全局变量 x 里面的值 是否在 集合 ['0'..'9'] 中,如果是 说明 前面按的是 数字键,这个时候 edit1 里面应该显示是 12 ,如果不在这个集合中,则 edit1 中应该显示 2,后面对于符号判断原理一样,我就不细说了,我写的代码如下:

var
Form1: TForm1;
x:string ='0';
y:char;




implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='1';
Edit1.Text:=Edit1.Text+'1';
end
else
Edit1.Text:='1';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='2';
Edit1.Text:=Edit1.Text+'2';
end
else
Edit1.Text:='2';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='3';
Edit1.Text:=Edit1.Text+'3';
end
else
Edit1.Text:='3';
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='4';
Edit1.Text:=Edit1.Text+'4';
end
else
Edit1.Text:='4';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='5';
Edit1.Text:=Edit1.Text+'5';
end
else
Edit1.Text:='5';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='6';
Edit1.Text:=Edit1.Text+'6';
end
else
Edit1.Text:='6';
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='7';
Edit1.Text:=Edit1.Text+'7';
end
else
Edit1.Text:='7';
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='8';
Edit1.Text:=Edit1.Text+'8';
end
else
Edit1.Text:='8';
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='9';
Edit1.Text:=Edit1.Text+'9';
end
else
Edit1.Text:='9';
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
if ('x' in ['0'..'9']) then
begin
x:='0';
Edit1.Text:=Edit1.Text+'0';
end
else
Edit1.Text:='0';
end;


上面是 10个 按键的代码。

问题是:我执行调试的时候 发现 x这个变量的值 总是 0 ,好象每次按键 都不能把当前的 值 传给 x,望高手指点!
 
if ('x' in ['0'..'9']) then

'x' ???
 
楼上可否指明问题,本人初学,请务见笑

我已经把 x:string
改成了 x:char ='0';

但问题依然, 不论按什么键 都改不了 x 的值
 
寒一个,等了一天 乍没有那位朋友帮忙解答下?
 
上面不是已经说了吗
if ('x' in ['0'..'9']) then
应该是:if (x in ['0'..'9']) then
另外你已经改了
x: char
 
后退
顶部