var tmp:PAnsiChar;  for i:=0 to 28 do
    begin
      tmp:=PAnsichar('a'+inttostr(i));
      TQRLabel(tmp).caption:=print_xzcfjds[i,0];
    end;编译时出现如下错误:
    Unsafe type 'PAnsiChar'
    Unsafe typecast of 'PAnsiChar' to 'TQRLabel'
    Unsafe type 'tmp: PAnsiChar'不知该怎么解决这个问题,请大家帮帮忙,多谢

解决方案 »

  1.   

    在delphi中,声明为string类型的字符串就是为AnsiChar;
    可是你声明的tmp,为指向null结束的AnsiChar字符串指针..指针是存放变量地址的要.
    你试试声明为tmp:string; 试一试.
      

  2.   

    tmp声明为:string时出现以下错误:
    Unsafe type 'PAnsiChar'
    Unsafe typecast of 'String' to 'TQRLabel'
      

  3.   

    我也有这样的问题
    Application.Messagebox(pchar('未找到配置文件: ' +
            ExtractFileName(ConfigFile) + '!'), '提示信息', MB_OK);说我"Unsafe type 'PChar'"
      

  4.   

    这是因为Delphi中不推荐使用零结尾的C风格的字符串,只是用来调用API时才会用到,所以会提示你这个问题。如果你一定要用,好像在Option设置中可以去掉这个提示,或者就是有一个编译开关可以屏蔽这个。但是看你上面的代码,首先确实不需要用PChar,其次
    TQRLabel(tmp),这个是什么意思?字符串转换成Label?还是想找到名字叫这个字符串的Label?
    如果是第二个,那就绝错。
      

  5.   

    http://community.csdn.net/Expert/topic/3343/3343766.xml?temp=.5646936
    有一个差不多的问题。
      

  6.   

    你的TQRLabel要求什么样的类型,就把它转换成什么样的类型.
      

  7.   

    asj(最烦活稀泥):是查找一个已存在的TQRLable,如果像我这样做的话是错的,那该怎么做?