procedure TForm1.Button1Click(Sender: TObject);
var
n,i,sum:integer;
begin
sum:=0;
try
   n:=strtoint(edit1.Text);
except
   showmessage('请输入正整数!');
   exit;
end;
i:=1;
while i<=n do
 begin
 if odd(i) then
 sum:=sum+i;
 i:=i+1;
 end;
 edit2.Text:=inttostr(sum) ;end;
我在中间加入了try语句  但是为什么运行的时候好像没用请问以上代码要如何修改  

解决方案 »

  1.   

    try
      n:=strtoint(edit1.Text);
    except
      showmessage('请输入正整数!');
      exit;
    end;上面改成  n:=strtointdef(edit1.Text, -1);  if n < 0 then
        showmessage('请输入正整数!');
      

  2.   

    n:=strtointdef(edit1.Text, -1);  if n < 0 then
      begin
        showmessage('请输入正整数!');
        exit;
      end;
      

  3.   

    我主要想弄清楚 try语句   而且 你的这个我如果输入一个字母的话   也还是会跳出错误的啊
      

  4.   


      try
        n:=strtoint(edit1.Text);  //这一句只要是整数, 不分正负都不会报错.
      except
        showmessage('请输入正整数!');
        exit;
      end;