如何在报表样式中增加列表视图的行高?
Posted
技术标签:
【中文标题】如何在报表样式中增加列表视图的行高?【英文标题】:How to increase row height of listview in report style? 【发布时间】:2011-08-15 00:10:14 【问题描述】:我只需要将 2px :) 添加到列表视图中一行的高度(自定义绘制的进度条现在太窄了)。
Change Listview item height,http://www.delphipages.com/forum/showthread.php?t=49939有两个很好的答案,但是我做不到。
我知道可以使用图像列表,但我已经有 16x16 图像:)
有人可以帮助我吗? 我会很感激的。
【问题讨论】:
【参考方案1】:回复CN_MEASUREITEM
控制通知消息,如下:
type
TListView = class(ComCtrls.TListView)
private
procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM;
end;
TForm1 = class(TForm)
...
procedure TListView.CNMeasureItem(var Message: TWMMeasureItem);
begin
inherited;
Inc(Message.MeasureItemStruct.itemHeight, 2);
end;
注意:仅当OwnerDraw
属性为真时才会发送此消息。
【讨论】:
哇!谢谢!!!我看到了 TMS 的 TAdvListView 的源代码,这条消息CNDrawItem(var Message: TWMDrawItem);
也被处理(链接 delphipages 与 TMS 中的代码相同)。为什么?
不知道 TAdvListView。默认的 TListView 已经有 OnDrawItem 事件。
id 没关系 :) 它有效!!!作为一个人,你是一个优秀的程序员!谢谢!
一个“小”而有趣的错误 :) -> ListView1.Align:=alClient;
请添加项目,调整窗口大小,看看会发生什么 :) 如何修复?谢谢!
这不适用于TCustomListView
- 似乎找不到这样做的方法。【参考方案2】:
无需编写任何代码的快速而肮脏的替代方法是添加一个 TImageList,将其宽度设置为 1,将其高度设置为您想要的行高,然后将其分配给列表视图的 SmallImages。
【讨论】:
我不认为这是一个“肮脏”的选择,完美无副作用! 我实际上使用的是 SmallImages 属性,因此这对我来说不是一个好的解决方案。但是,正如在 ***.com/a/6564492/1960514 中发现的那样,您也可以为此目的使用 StateImages!以上是关于如何在报表样式中增加列表视图的行高?的主要内容,如果未能解决你的问题,请参考以下文章