listview显示图标,ViewStyle为vsReport,LargeImages,SmallImages,StateImages都连ImageList1
ImageList1的Height 和 Width都为32请问为什么显示出来的图标都离左边界有一大段距离,有什么办法能让图标贴边显示

解决方案 »

  1.   

    自己绘图,DELPHI有这个例子,不过是相对TREEVIEW的,参考一下就可以了,功能很详细
      

  2.   

    我的图是存在数据库里的,显示的时候把图读到ImageList里,再显示在ListView,自己绘图?什么意思?
      

  3.   

    楼上所的意思是,从数据库读取的图一张一张的自己绘到listview
      

  4.   

    晕,代码就这样了
    var
      i: integer;
      item: TListitem;
      strm: TStringStream;
      icons: TIcon;
    begin
      ImageList1.Clear;
      ListView1.Clear;
      MainForm.ADOQuery1.Close;
      MainForm.ADOQuery1.SQL.Clear;
      MainForm.ADOQuery1.SQL.Add(sqls);
      MainForm.ADOQuery1.Open;
        for i:=0 to MainForm.ADOQuery1.RecordCount-1 do
        begin
          try
            strm:= TStringStream.Create('');
            TBlobField(MainForm.ADOQuery1.FieldByName('图标')).SaveToStream(strm);
            strm.Position:=0;
            icons:= TIcon.Create;
            icons.LoadFromStream(strm);
            item:= ListView1.Items.Add;
            item.Caption:= MainForm.ADOQuery1.FieldByName('名称').AsString;
            item.ImageIndex:= ImageList1.AddIcon(icons);
          finally
            strm.Free;
            icons.Free;
          end;
          MainForm.ADOQuery1.Next;
        end;
    end;
      

  5.   

    我是delphibeginner了,上面是我的代码,用来显示数据库里的图标的
      

  6.   

    你可以在caption里面输入合适得空格就可以了,呵呵