这段程序实现的是识别Edit输入的是数字还是汉字,请大哥帮我注释下
var
  a,b,c:Integer;
  d:String; 
begin
    a:=Length(Edit1.Text);
    c:=0;
    for b:=1 to a do    //?
    begin
      d:=Copy(Edit1.Text,b,1);   //Copy()是做什么的?
      if (d='0') or (d<='9') then  //?
      begin
        c:=c+1;            //?
      end;
    end;
    if c=Length(Edit1.Text) then  //?
    begin
      ShowMessage('1');
    end
    else
    begin
      ShowMessage('2');
    end;
end;

解决方案 »

  1.   

    首先强调一点,这个程序写得比较差。var
      a,b,c:Integer;
      d:String; 
    begin
        a:=Length(Edit1.Text);
        c:=0;
        for b:=1 to a do    //字符串第一个字符在第一个单元
        begin
          d:=Copy(Edit1.Text,b,1);   //Copy()是去指定字符串从指定位置开始的指定长度的字符串
          if (d='0') or (d<='9') then  //看是否处于0~9之间,不过不应该是d='0'
          begin
            c:=c+1;            //如果处于0~9之间就将计数器加1
          end;
        end;
        if c=Length(Edit1.Text) then  //如果所有字符都在0~9之间(如果有一个不在,c就少加一次,不会等于字符串的长度了)
        begin
          ShowMessage('1');
        end
        else
        begin
          ShowMessage('2');
        end;
    end;
      

  2.   

    for b:=1 to a do    //字符串第一个字符在第一个单元    什么意思?小弟菜啊!
      

  3.   

    d:=Copy(Edit1.Text,b,1);   //Copy()是去指定字符串从指定位置开始的指定长度的字符串
      什么意思?求大哥帮忙!
      

  4.   

    //字符串第一个字符在第一个单元
    //比如说Str := '12345',那么Str[1]='1';Str[2]='2';Str[3]='3';Str[4]='4';Str[5]='5';
    //Copy()是取指定字符串从指定位置开始的指定长度的字符串
    //上面“取”字写成了“去”,就是从一个字符串的第几位开始连续取几个字符procedure TForm1.Button1Click(Sender: TObject);
    var
      S: String;
      I: Integer;
    begin
      S := Trim(Edit1.Text);
      for I := 1 to Length(S) do
        if not(S[I] in ['0'..'9']) then Break;
      if I = Length(S) + 1 then
        ShowMessage('全部是数字')
      else
        ShowMessage('不全是数字');
    end;