下面的语句为什么出错???????????procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;begin
  str:='hi'  ;
  messagebox(form1.Handle,srt,str,mb_ok);
end;错误提示:
  [Error] Unit1.pas(32): Undeclared identifier: 'srt'
谢谢!!!!!!!!

解决方案 »

  1.   

    哦,原来是这样,但是又有新问题了!!procedure TForm1.Button1Click(Sender: TObject);
    var
       s:string;begin s:='hi';  messagebox(form1.Handle,s,s,mb_ok);
    end;提示:
    [Error] Unit1.pas(36): Incompatible types: 'String' and 'PChar'
      

  2.   

    呵呵,,,,Undeclared identifier: 意思是没有声明的定义,srt没有声明,因为你反了,
      

  3.   


    真是新手吗??
      messagebox(form1.Handle,pchar(s),pchar(s),mb_ok);
      

  4.   

    你的那个SRT哪来的?
    为什么定义的STR却后面要用SRT?
    好好检查检查!
      

  5.   

    我来一个系统一点的吧:
    第一个错误的意思:未声明的变量(Identifier),原因是你打错了,你想使用str这一个变量但是你打了srt,但是这个srt以前并没有声明过,所以不能使用;
    第二个错误的意思:类型不兼容。比如一个要求整数的参数你传入一个实数当然是不行的。放在这里呢,这里要求是一个PChar类型的,而你传入的是string类型的,所以也会出错。PChar是一种类型,是一个指针类型,是指向字符串的指针。你可以通过PChar(s)来得到一个PChar类型的参数,这个PChar并不是严格意义上的函数,它实际上是一种类型转换,可以把一定类型的数据转换成PChar类型,所以也存在着Int() Float()等等类型。