帮我为这个程序添一条异常处理的语句.当edit1没有内容输入时,会提示错误.关键是下面的循环语句先不运行.等输入edit1有数据后才正常运行.procedure TForm1.Button1Click(Sender: TObject);
begin
table1.DisableControls;
table1.First;while not  table1.Eof   do
begin
if ( strtoint(edit1.Text)>=strtoint(table1['MIN']) ) and( strtoint(edit1.Text)<strtoint(table1['MAX'])) then
begin
edit2.Text:=edit1.Text*table1['K']+table1['B'];
break;
END;
table1.Next;
end;IF( strtoint(edit1.Text)>=strtoint(table1['MAX']))  THEN
showmessage('大于或等于段点的最大值');
table1.EnableControls;
end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    //////////////////可以在这里添加判断edit1的语句if Trim(edit1.text)='' then ////////如果edit1没有输入值就提示,并停止执行程序
    begin
    showmessage('edit1不能为空,请先输入数据!');
    exit;
    end;///////////////////////
    table1.DisableControls;
    table1.First;while not  table1.Eof   do
    begin
    if ( strtoint(edit1.Text)>=strtoint(table1['MIN']) ) and( strtoint(edit1.Text)<strtoint(table1['MAX'])) then
    begin
    edit2.Text:=edit1.Text*table1['K']+table1['B'];
    break;
    END;
    table1.Next;
    end;IF( strtoint(edit1.Text)>=strtoint(table1['MAX']))  THEN
    showmessage('大于或等于段点的最大值');
    table1.EnableControls;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    try
    table1.DisableControls;
    table1.First;while not  table1.Eof   do
    begin
    if ( strtoint(edit1.Text)>=strtoint(table1['MIN']) ) and( strtoint(edit1.Text)<strtoint(table1['MAX'])) then
    begin
    edit2.Text:=edit1.Text*table1['K']+table1['B'];
    break;
    END;
    table1.Next;
    end;IF( strtoint(edit1.Text)>=strtoint(table1['MAX']))  THEN
    showmessage('大于或等于段点的最大值');
    table1.EnableControls;
    end;
    except
    showmessage(‘  ');
    end;
      

  3.   

    if Trim(edit1.text)='' then ////////如果edit1没有输入值就提示,并停止执行程序
    begin
    messagedlg('edit1不能为空,请先输入数据!',mtinformation,[mbyes],0);
    exit;
    end;
      

  4.   

    没全看。
    就看到一点。
    StrtoInt改成用StrToIntDef函数吧~~