代码看不懂请

代码看不懂请求助!
var
a,sum1:integer;
begin
    sum1:=0;
    a:=1;
    edit1.Text:= ' ';
    while   sum1 <=300   do
        begin
          if(a   mod   2=0)   and   (a   mod   3=0)   then
              begin
              sum1:=sum1+a;
              edit1.Text:=edit1.Text+inttostr(a)+ '       ';
              end;
              a:=a+1;
          end;
edit1.text:=copy(edit1.Text,1,length(edit1.Text)-3)
end;

edit1.text:=copy(edit1.Text,1,length(edit1.Text)-3)是什么意识啊       copy是什么作用啊,为什么要   "-3 "   啊   ?



------解决方案--------------------
edit1.text:=copy(edit1.Text,1,length(edit1.Text)-3)是什么意识啊 copy是什么作用啊,为什么要 "-3 " 啊 ?
----------------------

在Delphi帮助里查一下Copy函数的原型即可知道,Copy是子串截取函数。
Length()是字串长度函数

假设Edit.text原为 'abcdefg ',那长度就是7
上面的一句,意思是:把Edit1.text变为原Edit1.text的从第一个字符开始截7-3也就是4个字符。于是就是abcd
------解决方案--------------------
1.把300以内能被2和3整队的数以字符串的形式列出来,每个数以空格隔开
2.Copy的作用为截取字符串,截取最后一个数的尾随空格

------解决方案--------------------
火星人来过。。。
------解决方案--------------------
好象是最后一次循环的edit1.text字符串,前(N-3)的字符串