说明:展示 ListView 视其每一行 Item 的 Detail 字串长度自动调整高度(可每行高度不同)。

适用:Delphi XE7 / XE8

源码下载:[原创]ListView_自动计算行高(by龟山阿卍).zip

procedure TForm1.Button1Click(Sender: TObject);
const DetailStr: array[..] of String =
(''
,'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'
,'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
);
var i, r: Integer;
Item1: TListViewItem;
begin
for i:= to do
begin
Item1 := ListView1.Items.Add;
r := Random();
Item1.Detail := DetailStr[r].Substring(, Random(DetailStr[r].Length));
Item1.Text := i.ToString;
end;
end; procedure TForm1.ListView1UpdateObjects(const Sender: TObject;
const AItem: TListViewItem);
var R: TRectF;
begin
if (AItem.Objects.DetailObject <> nil) and
(AItem.Objects.DetailObject.Text <> '') then
begin
// 计算文字显示的区域
R := RectF(, , AItem.Objects.DetailObject.Width, );
ListView1.Canvas.MeasureText(R,
AItem.Objects.DetailObject.Text,
AItem.Objects.DetailObject.WordWrap,
[], TTextAlign.Leading, TTextAlign.Leading); // 设定高度
AItem.Height := Trunc(R.Height);
end;
end;

补充:计算最后一项区域并卷到最后一项

procedure TForm1.Button2Click(Sender: TObject);
var R: TRectF;
begin
R := ListView1.GetItemRect(ListView1.Items.Count - ); // 取得最后一项的真实区域 (不等高也能计算)
ListView1.ScrollViewPos := R.Bottom; // 卷到最后
end;

原文在这里:https://www.cnblogs.com/onechen/p/4353544.html

【转】FireMonkey ListView 自动计算行高的更多相关文章

  1. FireMonkey ListView 自动计算行高

    说明:展示 ListView 视其每一行 Item 的 Detail 字串长度自动调整高度(可每行高度不同). 适用:Delphi XE7 / XE8 源码下载:[原创]ListView_自动计算行高 ...

  2. ios label 自动计算行高详解

    在OC当中自动计算行高主要调用系统的 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #ffffff } span ...

  3. Xcode8+和iOS10+使用Masonry自动计算行高

    说起tableView的自动计算行高,真的是不想再提了,写了不知道几百遍了.可就是这麽一个小玩意儿,把我给难的不行不行的,眼看都要没头发了. 1.设置tableView的预估行高和行高为自动计算 // ...

  4. C#如何设置Listview的行高-高度

    Winform窗口中,控件listview是无法设置行高的. 以加入一个imagelist(图片列表控件)实现行高的设置. ImageList imageList = new ImageList(); ...

  5. iOS开发——UI进阶篇(三)自定义不等高cell,如何拿到cell的行高,自动计算cell高度,(有配图,无配图)微博案例

    一.纯代码自定义不等高cell 废话不多说,直接来看下面这个例子先来看下微博的最终效果 首先创建一个继承UITableViewController的控制器@interface ViewControll ...

  6. iOS UITableView 解决估算行高和指定行高的矛盾

    喜欢交朋友的加:微信号 dwjluck2013 1.一般来说 在iOS 中若UITableViewCell 固定行高, 会通过 - (CGFloat)tableView:(UITableView *) ...

  7. wpf datagrid row height 行高自动计算使每行行高自适应文本

    wpf 的datagrid的行高 要么是Auto,要么是定值:但会带来麻烦就是每行行高都一样. 当需要按内容(主要是wrap 换行的textbox或textblock)来动态调整行高的时候,需要用到d ...

  8. iOS开发tips-UITableView、UICollectionView行高/尺寸自适应

    UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...

  9. UITableView、UICollectionView行高/尺寸自适应

    UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...

随机推荐

  1. Servlet获取POST方法请求体数据

    if ("POST".equalsIgnoreCase(request.getMethod())) { test = request.getReader().lines().col ...

  2. docker 导出多个镜像合并成一个tar

    导出单个镜像 docker save [images] > [name.tar] 倒出多个镜像合并成一个tar包 docker save [images] [images] > [name ...

  3. svn 创建外部链接

    背景: 之前的服务器项目<杀戮链条>,服务器工程中的common目录需要在多个子工程中共享,为了统一,所以只保留一个common目录,在子工程中采用外部链接的方法共享到工程中 1.  打开 ...

  4. JavaScript异步与Promise基本用法(resolve与reject)

    Promise解决的问题相信每个前端都遇到过这样一个问题,当一个异步任务的执行需要依赖另一个异步任务的结果时,我们一般会将两个异步任务嵌套起来,这种情况发生一两次还可以忍,但是发生很多次之后,就形成了 ...

  5. kubenetes 的svc从ClusterPort 改为NodePort

    1.yaml文件如下 spec: clusterIP: 10.233.43.125 ports: - name: http-metrics port: protocol: TCP targetPort ...

  6. JS动态添加的标签无法绑定事件解决方案~~~

    今天用ajax实现动态插入数据时发现监听一直不起作用,一样的代码,非动态的就可以监听实现 这是困扰了我近一个小时的bug,后面才理解到可能是动态插入导致的! 看了看网上的解决方案,似乎都不太通俗,讲的 ...

  7. java.lang.ClassNotFoundException: org.apache.commons.dbutils.ResultSetHandle

    原因是这两个地方都得导入dbutils的jar包,一般出错是因为WEB-INF下没有导入包,记得导入,然后buildPath即可

  8. 第十四周课程总结&实验报告

    简单记事本的实现 实验源码 主类 package test1; import javax.swing.JFrame; import javax.swing.JTextArea; public clas ...

  9. python类学习

    创建关于汽车的类 class Cars(): def __init__(self, brand, country): self.brand = brand self.country = country ...

  10. 桥接模式下访问虚拟机中的Django项目

    首先需要保证主机和虚拟机能相互Ping通,如果Ping不通,请参考我上篇文章,这里演示的是桥接模式下的方法,如果是NAT模式连接,请参考别处. 1. 虚拟机Linux系统内的Django项目 sett ...