运行时错误提示:
Project InProject.exe raised exception class EConvertError with
message ''' is not a valid integer value'.process stopped.Use
Step or Run to continue.

解决方案 »

  1.   

    可能是fkks.text的值不合法,
    可能有空格之类的。
    用trim试试。
      

  2.   

    to:AABB
    trim如何使用。请举例好吗?
      

  3.   

    如果fkks.text为空时,转换会发生错误。你可以这样用:
    try
    i:=strtoint(fkks。text);
    except
    i:=0
    end;
    case i of
    .....
    end;
      

  4.   

    to: soloplayer
    我试了你的方法。还是不行。
      

  5.   

    用TRIM是去掉一个STRING的左右空格
    STR:=' 323 ';
    那么用STR:=TRIM(STR);
    STR就变成'323'了
    你的问题不是这样的,按照你的错误提示
    是因为INTTOSTR()的问题
    是说你的fkks.text不是一个整数,那么你应该采用
    SOLOPLAYER的方法
    进行异常处理
    TRY
    I:=STRTOINT(FKK.TEXT);//如果有非法那么
    EXCEPT
    I:=0;//I就等于'0'
    END;
    这个方法一定可以。************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  6.   

    可能是edit1.text的字符不是数字字符,所以发生啦异常,后面
    就不会继续下去!!!!!
      

  7.   

    procedure TForm1.fkksKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
           case strtointDef(fkks.text,0 ) of
              0: fk_lb.caption:='';  //增加 
            101: fk_lb.caption:='内科门诊';  ///门诊科室
            102: fk_lb.caption:='外科门诊';
            103: fk_lb.caption:='儿科门诊';
            104: fk_lb.caption:='神内门诊';
            105: fk_lb.caption:='传染门诊';
            106: fk_lb.caption:='骨科门诊';
            107: fk_lb.caption:='肿瘤门诊';
            108: fk_lb.caption:='心内门诊';
            109: fk_lb.caption:='神外门诊';
            110: fk_lb.caption:='烧伤门诊';
            111: fk_lb.caption:='中西医结合';
            112: fk_lb.caption:='中医门诊';
            113: fk_lb.caption:='公费门诊';
            end;
    end;
      

  8.   

    procedure TForm1.fkksKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
           case strtoint(Trim(fkks.text)) of
            101: fk_lb.caption:='内科门诊';  ///门诊科室
            102: fk_lb.caption:='外科门诊';
            103: fk_lb.caption:='儿科门诊';
            104: fk_lb.caption:='神内门诊';
            105: fk_lb.caption:='传染门诊';
            106: fk_lb.caption:='骨科门诊';
            107: fk_lb.caption:='肿瘤门诊';
            108: fk_lb.caption:='心内门诊';
            109: fk_lb.caption:='神外门诊';
            110: fk_lb.caption:='烧伤门诊';
            111: fk_lb.caption:='中西医结合';
            112: fk_lb.caption:='中医门诊';
            113: fk_lb.caption:='公费门诊';
            end;
    end;如楼上所说的,
    还要防止为空。
      

  9.   

    将你的代码放入onChange里面************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  10.   

    procedure TForm1.fkksKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
           //case strtoint(fkks.text) of
           case strtointDef(fkks.text,0 ) of
            101: fk_lb.caption:='内科门诊';  ///门诊科室
            102: fk_lb.caption:='外科门诊';
            103: fk_lb.caption:='儿科门诊';
            104: fk_lb.caption:='神内门诊';
            105: fk_lb.caption:='传染门诊';
            106: fk_lb.caption:='骨科门诊';
            107: fk_lb.caption:='肿瘤门诊';
            108: fk_lb.caption:='心内门诊';
            109: fk_lb.caption:='神外门诊';
            110: fk_lb.caption:='烧伤门诊';
            111: fk_lb.caption:='中西医结合';
            112: fk_lb.caption:='中医门诊';
            113: fk_lb.caption:='公费门诊';
            else: fk_lb.caption:='错误输入';  //增加 
            end;end;
      

  11.   

    TRY
    I:=STRTOINT(FKK.TEXT);//如果有非法那么
    EXCEPT
    I:=0;//I就等于'0'
    END;
    还用理会有没有空格,反正一切非整数的字符串
    那么i都是0
    ************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  12.   


    该代码应放在 onChange 中
           //case strtoint(fkks.text) of
           case strtointDef(fkks.text,0 ) of
            101: fk_lb.caption:='内科门诊';  ///门诊科室
            102: fk_lb.caption:='外科门诊';
            103: fk_lb.caption:='儿科门诊';
            104: fk_lb.caption:='神内门诊';
            105: fk_lb.caption:='传染门诊';
            106: fk_lb.caption:='骨科门诊';
            107: fk_lb.caption:='肿瘤门诊';
            108: fk_lb.caption:='心内门诊';
            109: fk_lb.caption:='神外门诊';
            110: fk_lb.caption:='烧伤门诊';
            111: fk_lb.caption:='中西医结合';
            112: fk_lb.caption:='中医门诊';
            113: fk_lb.caption:='公费门诊';
            else: fk_lb.caption:='错误输入';  //增加 
            end;end;
      

  13.   

    你像以面所说的在strtoint(Edit1.text)里面加个trim
      

  14.   

    在case..of前检验一下edit1.text的值是否可以转换为整型,或者加异常处理
    你的错误应该是edit1.text为空,即edit1.text='',''不能转化为整型呀
      

  15.   

    对呀
    还是把代码放在onChange中吧!
      

  16.   

    我想这可能是字符和数字转换时出错。
    我有一个很不错的方法解决次问题。
    下面这段代码是用来验证集装箱编号的合法性,涉及到
    字符和数字转换的问题,你可以借鉴以下。const
       UpperCaseChars=['A'..'Z'];
       IntSet=['0','1','2','3','4','5','6','7','8','9'];function Tdm1.CheckCtnNo(ctnno: string): boolean;
    var
       i:integer;
       temp:integer;
    begin
     result:=true;
     if not (length(ctnno) in [10,11]) then
       begin
          result:=false;
          exit;
       end; for i:=1 to 3 do
      begin
        if not (ctnno[i] in Uppercasechars) then
         begin
          result:=false;
          exit;
         end;
      end; if ctnno[4]<>'U' then
       begin
          result:=false;
          exit;
       end; for i:=5 to length(ctnno) do
      begin
        if not (ctnno[i] in IntSet) then
         begin
          result:=false;
          exit;
         end;
      end;  if length(ctnno)=10 then exit;  temp:=0;
      for i:=1 to length(ctnno)-1 do
       begin
         temp:=temp+GetValue(ctnno[i])*GetTwoPower(i-1);
       end;  if (temp mod 11)<>GetValue(ctnno[11]) then
       begin
          result:=false;
          exit;
       end; 
    end;function Tdm1.GetTwoPower(i: integer): integer;
    begin
     case i of
      0:result:=1;
      1:result:=2;
      2:result:=4;
      3:result:=8;
      4:result:=16;
      5:result:=32;
      6:result:=64;
      7:result:=128;
      8:result:=256;
      9:result:=512;
     end;
    end;function Tdm1.GetValue(c: char): integer;
    begin
      if c in UpperCaseChars then
       case c of
        'A':result:=10;
        'B':result:=12;
        'C':result:=13;
        'D':result:=14;
        'E':result:=15;
        'F':result:=16;
        'G':result:=17;
        'H':result:=18;
        'I':result:=19;
        'J':result:=20;
        'K':result:=21;
        'L':result:=23;
        'M':result:=24;
        'N':result:=25;
        'O':result:=26;
        'P':result:=27;
        'Q':result:=28;
        'R':result:=29;
        'S':result:=30;
        'T':result:=31;
        'U':result:=32;
        'V':result:=34;
        'W':result:=35;
        'X':result:=36;
        'Y':result:=37;
        'Z':result:=38;
       end;
      if c in IntSet then
       case c of
         '0':result:=0;
         '1':result:=1;
         '2':result:=2;
         '3':result:=3;
         '4':result:=4;
         '5':result:=5;
         '6':result:=6;
         '7':result:=7;
         '8':result:=8;
         '9':result:=9
       end;
    end;
      

  17.   

    1。在 onkeyup 的消息里做这些事,比较合适。
    2。在调用inttostr(string)之前不进行数字合法化检测是很危险的,
       好像有个函数 IsNumeric()能判断字符是否数字,你还要写一个函数来 监测整个字符串。
      

  18.   

    procedure TForm1.BitBtn2Click(Sender: TObject);
    var
        I,J:Integer;
        TEnterInt:Set of Char;
        Str:String;
    begin
           Str:='';
           I:=1;
           for J:=I to Length(fkks.text) do{删除TEdit中的空格}
           begin
                if fkks.text[I]=#32 then //遇到空格时
                     Inc(I)
                else
                begin
                     Str:=Str+fkks.text[I];
                     Inc(I);
                end;
           end;       fkks.Text:=Str;       if fkks.text[1]=#48 then//判断第一位不为空格的字符是否为零
           begin
                ShowMessage('第一位不能为零');
                Exit;
           end;       TEnterInt:=[#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58]; //从0到9
           for I:=1 to Length(fkks.text) do
           begin
                if not (fkks.text[I] in TEnterInt) then
                begin
                     ShowMessage('fkks中包含不合规则的字符!!');
                     Exit;
                end;
           end;
           case strtoint(fkks.text) of
            101: fk_lb.caption:='内科门诊';
            102: fk_lb.caption:='外科门诊';
            103: fk_lb.caption:='儿科门诊';
            104: fk_lb.caption:='神内门诊';
            105: fk_lb.caption:='传染门诊';
            106: fk_lb.caption:='骨科门诊';
            107: fk_lb.caption:='肿瘤门诊';
            108: fk_lb.caption:='心内门诊';
            109: fk_lb.caption:='神外门诊';
            110: fk_lb.caption:='烧伤门诊';
            111: fk_lb.caption:='中西医结合';
            112: fk_lb.caption:='中医门诊';
            113: fk_lb.caption:='公费门诊';
           end;end;