200分求酒店房间分布图的解决方案,ListView很麻烦,自己要写很多代码控制。

解决方案 »

  1.   

    怎么说法?对了我也给listview搞烦。我要向listview1指定的位置(第五行第五列)写入字符串:
    写了这个代码:listview1.Items.Item[4].SubItems.Strings[3]:='第五行第五列';
    怎么编译时候没错,但是执行这段代码的时候出现错误?该怎么办?怎么向指定的位置写入字符串?
      

  2.   

    var
      vItem : TListItem;
    begin
      vItem :=   ListView1.Items.Add;
      vItem.Caption := '1';
      vitem.SubItems.Append( '第五行第五列');
      vitem.SubItems.Append( '第五行第五列');
      vitem.SubItems.Append( '第五行第五列');
      vitem.SubItems.append( '第五行第五列');
      // 上面我创建了四列,那么我现在改写第三列是没有问题的。也就是下面这句不会出错。但如果我上面只创建二列,下面这个就会出错。因为超过界限了。
      vItem.SubItems.Strings[3] := 'test';  //当然上面那一句也可以改下,更加稳定
      if Vitem.SubItems.Count >= 3 then vItem.SubItems.Strings[3] := '这样不会错';
    end;
      

  3.   

    listview很麻烦吗,做分布图,我感觉应该是可以的,再不行,可以自己在canvas上 画,或者用第三方的
      

  4.   

    自己顶一下,我先用listview写吧,继续等解决方案。
      

  5.   

    用个Panel做底 用它的 Controls 来管理 另一自定义的组件(panel之类,或组合组件)列表
      

  6.   

    首先要增加足够的列,否则会报错的with ListView1.Items.Add do
    begin
          Caption:='';
          SubItems.Add('');
          SubItems.Add('');
          SubItems.Add('');
          SubItems.Add('');
    end;
    ListView1.Items[0].SubItems[3]:='第一行第五列';