修正TListView应用XP Theme时的错误

类别:Delphi 点击:0 评论:0 推荐:
  Dephi6(及以下版本)并不提供XP风格支持,因为Dephi6推出时XP还在测试当。要使应用程序支持XP风格必须添加"manifest xml”资源文件到应用程序中,告诉系统对此应用程序使用6.0的comctl32.dll,而不是5.0。但有部分VCL控件与6.0存在兼容问题。
  TListView为vsReport时,鼠标移到列头时会抛出异常,修正这个问题需要修改ComCtrls.pas,步骤如下:
  1.打开ComCtrls.pas文件,查找TCustomListView.UpdateColumn;
  2.找到以下语句:
          if FImageIndex <> -1 then
              fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES;
  3.改为:
          if FImageIndex <> -1 then 
              fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES 
          else 
              mask := mask and not (LVCF_IMAGE);
  3.保存Comctrls.pas,OK,问题解决!
  另外,www.tmssoftware.com提供免费控件,可以在不改动原VCL控件代码的情况修正问题。

本文地址:http://com.8s8s.com/it/it4864.htm