代码是这样的:procedure TForm1.Button1Click(Sender: TObject);
var
  x,y : integer;
  n : string;
begin
  x := 1;
  y := 1;
  n := '';
     for  x := 1 to 9 do     begin
     for y := 1 to 9 do     begin
     n := n+inttostr(x)+' X '+inttostr(y)+' = '+inttostr(x*y)+'  ';     memo1.text := n+#10 ;     end;
     end;
end;end.输出以后总是写到memo1组建的边缘,请问怎样才能1*1=1....一直到1*9=9然后换行再重下一行开始2*1=1..一直到2*9=18然后再换行输出呢?

解决方案 »

  1.   

    看看这个是否是你要的:procedure TForm1.Button1Click(Sender: TObject);var
      x,y : integer;
      n : string;
    begin
      memo1.Clear;
      x := 1;
      y := 1;
      n := '';
      for x := 1 to 9 do
      begin
         for y := 1 to 9 do
         begin
           n := n+inttostr(x)+' X '+inttostr(y)+' = '+inttostr(x*y)+' ';
         end;
         Memo1.Lines.Add(n);
         n:='';
      end;
    end;
    end.
      

  2.   


    {九九乘法表}
    var
      X,Y: Byte;
      s: string;
    begin
      Memo1.Clear;
      for X := 1 to 9 do
      begin
        Y := 1;
        while Y <= X do
         begin
           s := S + IntToStr(X) + 'X' + IntToStr(Y) + ' = '+ IntToStr(X*Y)+ '  ';
           inc(Y,1);
         end;
         Memo1.Lines.Add(s);
         s :=''
      end;
    end;{1X1=1
    2X1=2  2X2=4
    3X1=3  3X2=6  3X3=9
    4X1=4  4X2=8  4X3=12  4X4=16
    5X1=5  5X2=10  5X3=15  5X4=20  5X5=25
    6X1=6  6X2=12  6X3=18  6X4=24  6X5=30  6X6=36
    7X1=7  7X2=14  7X3=21  7X4=28  7X5=35  7X6=42  7X7=49
    8X1=8  8X2=16  8X3=24  8X4=32  8X5=40  8X6=48  8X7=56  8X8=64
    9X1=9  9X2=18  9X3=27  9X4=36  9X5=45  9X6=54  9X7=63  9X8=72  9X9=81
    }
      

  3.   

    呵呵 终于明白了,原来是我输出的代码放的位置不对,而且每次1重循环完了没有清空字符串变量。
    另外2楼的代码我没编译通过啊,也不知道什么原因,编译提示 
    Syntax error: Missing operand after '{0}' operator.
    语法错误:“{0}”运算符后缺少操作数。总之 谢谢大家了。