你跟踪调试一下,看看出错在哪条语句,
可能是b:=s/(k*(x+1));
???

解决方案 »

  1.   

    我读完了你的程序,问题不一定是在b:=s/(k*(x+1));上,因为k虽为变量但没有对它进行任何操作,x是Memo的行数,不可能出现负数,所以(k*(x+1))不会溢出。问题可能跟你定义的变量类型有关,
      

  2.   

    b:=s/(k*(x+1));这一句也应该没错啊。奇怪了,也不是溢出或除零错误。编译时没错吗?是运行时出错的吧?
      

  3.   

    你跟踪一下K的值,看看是不是K*(x+1)有等于0的时候;
      

  4.   

    好样的,zhouzx(atu) ,我要给你分啊,
    先让我调试K看看.
    K如果等于零那怎么办呢?
      

  5.   

    好样的,zhouzx(atu) ,我要给你分啊,
    先让我调试K看看.
    K如果等于零那怎么办呢?
      

  6.   

    当Memo2是空的时候,x为-1,也就是说出错,
      

  7.   

    谢谢你 greenwaterbluesky(碧水蓝天我的家) 
    很好的一个提醒呀!:))))
    你要分吗?
      

  8.   

    看来是X的问题, greenwaterbluesky(碧水蓝天我的家) 
    请你留下QQ
    Memo2的内容在接受了K的赋值后,就被清空了,怎么回事呢
      

  9.   

    我的QQ用不了,
    Memo2的内容在接受了K的赋值后  //这在哪里?
      

  10.   

    执行以下语句后,原来有的Memo2的内容就空了.
    procedure Tmain_form.Button2Click(Sender: TObject);
    begin
      ShowMessage(IntToStr(k));
    end;
      

  11.   

    好象应该和ShowMessage(IntToStr(k))没关你看一看在
    Tmain_form.Button2Click事件之前你做了什么,我觉得你应该是在此之前就
    把Memo2的内容清空了
      

  12.   

    不会的,在ShowMessage(IntToStr(k))的执行中Memo2的内容还有的,
    但ShowMessage(IntToStr(k))后调出来的对话框,点退出(执行CLOSE语句)后
    就清空了。
      

  13.   

    不太明白你的意思,你看一下这样如何
    ShowMessage(Memo2.Lines.Count)
    ShowMessage(IntToStr(k))
    ShowMessage(Memo2.Lines.Count)
    我觉得ShowMessage(IntToStr(k))这句不可能改变Memo2的