If Application.MessageBox(pchar('第'+omrzyrk1.pcdm+'批第'+omrzyrk1.zyh+'志愿院校代码或专业代号不合法,是否继续!'),pchar(caption),MB_OKCancel)<>1
   Then Exit;
就这一句话,报错!
错误:[Error] Unitzykxg.pas(1143): Invalid typecast
一开始这句话是这样写的,没错。
If Application.MessageBox(pchar('第'+pcdm+'批第'+zyh+'志愿院校代码或专业代号不合法,是否继续!'),pchar(caption),MB_OKCancel)<>1
   Then Exit;
以前用的是pcdm和zyh两个变量,后来我改成用记录的属性来做,就报错了。望高人指点!

解决方案 »

  1.   

    把omrzyrk1.pcdm 等换成omrzyrk1.pcdm.ASSTRING
      

  2.   

    to zjybestzjybest(zjybestzjybest):我试了,不行。
    注:omrzyrk1是我定义的一条记录。
      

  3.   

    我定义的记录:
    type
      Tomrzyrk1=record
        pcdm  :String[1];
        zyh   :String[1];
    end;
      

  4.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      omrzyrk1:Tomrzyrk1;
      s:String;
    begin
      omrzyrk1.pcdm:='1';
      omrzyrk1.zyh:='2';
      s:='第'+omrzyrk1.pcdm+'批第'+omrzyrk1.zyh+'志愿院校代码或专业代号不合法,是否继续!';
      If Application.MessageBox(pchar(s),pchar(caption),MB_OKCancel)<>1
        Then Exit;
    end;