我想设置图标的间距,但是实现不能,设置代码如下:ListView_SetIconSpacing(LV.Handle, 10, 10);  //LV的间距
  LV.Arrange(arDefault);但是会报错,提示信息为Incompatible types: 'TListArrangement' and 'TAutoRefreshFlag',我点击arDefault进去,发现其引用的是DB单元,正常情况下应该是CommCtrl单元,我上面也引用了,可是当我点击Uses里的CommCtrl的时候,则提示Unable to locate file "CommCtrl.pas",这是为什么,DB单元和CommCtrl是存在于同一目录的,能不能请高手给出解决方法,重装了delphi还是一样,本人用的是delphi7,因公司需求,用的RZ组件是3.0的,望给予问题原因和解决方案

解决方案 »

  1.   

    LV.Arrange(CommCtrl.arDefault); 试试
      

  2.   

    uses commctrl,...;
    function ListView_SetIconSpacing(hwndLV: HWND; cx, cy: Word): DWORD;
    cx,cy:对应x,y方向上的间距
    用法:
      listview_seticonspacing(listview1.handle,20,20);
      

  3.   

    不是跟你说,uses commctrl了,但是那样会报错么
      

  4.   

    不是跟你说,uses commctrl了,但是那样会报错么,而且单单那句的话,实现不了效果
      

  5.   

    我两个都试了,测试OK,我的Raize5,不行就升级一下控件
      

  6.   

    把代码贴出来如下:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, CommCtrl, ImgList, ComCtrls, RzListVw;type
      TForm1 = class(TForm)
        lv1: TListView;
        il1: TImageList;
        lv2: TRzListView;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      ListView_SetIconSpacing(lv1.Handle, 40, 40);
      ListView_SetIconSpacing(lv2.Handle, 40, 40);
    end;end.
      

  7.   

    不是跟你说,uses commctrl了,但是那样会报错么,而且单单那句的话,实现不了效果另外鄙视一下这类三无提问,报错至少也应该把错误信息贴出来。
      

  8.   

    提示信息为Incompatible types: 'TListArrangement' and 'TAutoRefreshFlag',
    /////////////////////
    怀疑楼主用了不同版本的 commctrl 单元,他那个提示是类型不符。
      

  9.   

    我用的是cxlistview,那样设置不能调整间距,换回普通的就可以了,结贴,另起一贴讨论新问题