我想大家帮我分析分析这段代码什么意思?它每条语句是干什么的
其中List1是一个ListView控件

解决方案 »

  1.   

    哦,能看懂就好
    1,BYTE()语句是干什么的?
    2,最下面的赋值语句.Data:=Pointer(4);是什么意思
    3,Pointer(BYTE(List1.Items[i].data)-1)是干什么呀?
    就这三个问题,谢谢了
      

  2.   

    List1.Items[i].Data
    保存的是对象的指针。
      

  3.   

    不好意思,List1.Items[i].Data是TObject类型的对象,你可以转换为任何其他类型,所以如果你list中保存的信息不够,可以在data中保存多一些,你也可以保存结构题,对象,等等,这里只是保存了一个byte
      

  4.   

    奶奶的!气晕了,不给分的王八蛋!
    http://www.csdn.net/expert/topic/466/466126.shtm
      

  5.   

    哦,能看懂就好
    1,BYTE()语句是干什么的? 类型转换,否则类型不匹配
    2,最下面的赋值语句.Data:=Pointer(4);是什么意思  同上
    3,Pointer(BYTE(List1.Items[i].data)-1)是干什么呀? 就是把接点的data值减一后赋值就这三个问题,谢谢了 
      

  6.   

    hydra1101(虫):
    你小子是不是穷昏了,问题还没解释清楚就要分,去抢吧
      

  7.   

    2,最下面的赋值语句.Data:=Pointer(4);是什么意思 
    data的值赋为 4的指针
      

  8.   

    这段代码的意思就是
    把接点附加值(Data)的所有值都减一,如果小于0,那么删除结点,不过程序有错。
      

  9.   

    正确的应该是
    for i:=List1.Items.Count-1 downto 0 do
        if BYTE(List1.Items[i].Data)>0 then
          List1.Items[i].Data := Pointer(BYTE(List1.Items[i].Data)-1)
        else begin
          List1.Items[i].Delete;
          Break;
        end;
      

  10.   

    hydra1101(虫):
    你小子是不是穷昏了,问题还没解释清楚就要分,去抢吧 
    不是说你,不好意思!是说连接帖子上的人。
      

  11.   

    这段程序的意思是不是这样的,每加入一行,将其Data为一个指向值为4的指针
    然后呢,每次调用这段代码,就将Data指针所指的值减1,直到其为0,当其为0时就删除这行,对不对呀
      

  12.   

    那是因为你没有出意外情况,假如list的中间出现了小于0的结点,那就出错了,你每次都是最尾出现小于0,当然不会错啦!
      

  13.   

    谢谢,你
    有QQ吗,或者Email,我想我还有不少问题得请教你呢
    注意收分,看来你是吃过不少亏,哈哈
      

  14.   

    我经常吃亏!真是的。
    我email:[email protected]
      

  15.   

    对,你说的没错,中间结点没处理,你线程熟悉吗?
    http://www.csdn.net/expert/topic/479/479344.shtm
      

  16.   

    熟悉!Delphi和CBuild、Ansi C++都挺熟,我过去看看。