这就是我到目前为止,当我在编辑框中输入一个数字并按下按钮时它会崩溃,我是Delphi的新手请帮助!谢谢,马特
var
Form3: TForm3;
Count: integer;
RunningTotal: Real;
implementation
{$R *.dfm}
procedure TForm3.btnEnterClick(Sender: TObject);
begin
repeat
RunningTotal:= RunningTotal + STRTOINT (edtNum.Text);
until STRTOINT(edtNum.Text)=0;
lblAns.Caption:= FLOATTOSTR (RunningTotal);
end;
procedure TForm3.edtNumChange(Sender: TObject);
begin
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
Count:=0;
RunningTotal:=0;
end;
end.
答案 0 :(得分:1)
当用户提供他的第一个值时,你将永远循环。您需要在事件处理程序中执行的操作是获取单个值,然后对其进行处理。
procedure TForm3.btnEnterClick(Sender: TObject);
begin
if STRTOINT(edtNum.Text)=0 then
lblAns.Caption:= FLOATTOSTR (RunningTotal)
else
RunningTotal:= RunningTotal + STRTOINT (edtNum.Text);
end;
这样,用户可以提交更多号码,直到他为您提供0
。
答案 1 :(得分:1)
如果您输入的是字符而不是数字,则会导致异常。您可以处理异常,或者可以阻止用户输入此类字符
var
Form1: TForm1;
myvalue : Real = 0;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
number : Real;
begin
number := StrToFloat(Edit1.Text);
if number = 0 then ShowMessageFmt('The result is %f',[myvalue])
else
myvalue := myvalue + number;
Edit1.Text := '';
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9','.']) then Key := #0;
end;