2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
查看: 1098|回复: 3
打印 上一主题 下一主题

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

[复制链接]

41

主题

41

帖子

127

积分

注册会员

Rank: 2

积分
127
跳转到指定楼层
楼主
发表于 2015-3-20 00:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
京东数码购物支持本站
[原创]ListView_自动计算行高(by龟山阿卍).zip

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

2

帖子

16

积分

新手上路

Rank: 1

积分
16
沙发
发表于 2015-5-24 16:49:11 | 只看该作者
京东数码购物支持本站
//------------------------------------------------------------------------------
//                                                                             -
// 2015.03.20 by 龟山阿卍 QQ 1467948783                                        -
// http://www.cnblogs.com/onechen/                                             -
//                                                                             -
//------------------------------------------------------------------------------

unit Main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.ListView.Types, FMX.ListView, FMX.StdCtrls;

type
  TForm1 = class(TForm)
    ToolBar1: TToolBar;
    Button1: TButton;
    ListView1: TListView;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure ListView1UpdateObjects(const Sender: TObject;
      const AItem: TListViewItem);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
const DetailStr: array[0..2] of String =
('1234567890123456789012345678901234567890123456789012345678901234567890'
,'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'
,'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
);
var i, r: Integer;
    Item1: TListViewItem;
begin
     for i:=0 to 100 do
     begin
          Item1 := ListView1.Items.Add;
          r := Random(3);
          Item1.Detail := DetailStr[r].Substring(0, 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(0, 0, AItem.Objects.DetailObject.Width, 10000);
          ListView1.Canvas.MeasureText(R,
            AItem.Objects.DetailObject.Text,
            AItem.Objects.DetailObject.WordWrap,
            [], TTextAlign.Leading, TTextAlign.Leading);

          // 设定高度
          AItem.Height := Trunc(R.Height);
     end;
end;

end.

做下好人让大家可以直接看到内容

回复 支持 反对

使用道具 举报

0

主题

5

帖子

75

积分

注册会员

Rank: 2

积分
75
板凳
发表于 2015-6-5 14:19:01 | 只看该作者
京东购书支持本站
没有效果哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-5-17 13:48 , Processed in 0.063753 second(s), 28 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表