我用
var pch:pchar;getmem(pchar,50);
listview:=listview.items.add;
listview.data:=Pch;////
然后调用
pch2:pchar;pch2:=listview.selected.data;showmessage(strpas(pch2));
出现乱码。为什么。

解决方案 »

  1.   

    我问你。你的listview.selected是你add的TListItem么?
    如果不是当然会出现乱麻。如果是,那么你改为:
    ShowMessage(String(pch2));
      

  2.   

    哥们
    我是用add方法加的
    但是
    showmessage(string(pch2)):
    还是出现乱码
      

  3.   

    哦~~~
    getmem(pchar,50); //应该是pch
    listview:=listview.items.add;
    listview.data:=Pch;你看~~~pch被分配内存了~~~但是getmem并不会帮你将分配的内存清0。你需要使用FillChar或者ZeroMemory来设置pch所指向内存区域每个字节的初始值。不初始当然指向的是乱麻。
    况且你分配内存之后并没有设定pch所指向的内存区域的值。这就是为什么出现乱码的问题了