TScrollBox -> TCustomListBox -> TListBox; 其元素项是 TListBoxItem 类型.

TListBox 的功能在 TCustomListBox 里就完成了.

值得注意的变化是:
1、复选框(相关属性: ShowCheckboxes、TListBoxItem.IsChecked)
2、交替背景(通过继承还可以调整交替的背景色)
3、TListBoxItem 可调整大小、容纳其它对象.


{ TCustomListBox }
public
  constructor Create(...); override;          //
  destructor Destroy; override;              //
  procedure Assign(...); override;            //
  procedure Clear; virtual;                  //清空
  function DragChange(...): Boolean; dynamic; //调用 OnDragChange 事件
  procedure SelectAll;                        //全选
  procedure ClearSelection;                  //取消选择
  procedure SelectRange(...);                //选择指定范围
  function ItemByPoint(...): TListBoxItem;    //获取指定位置的项
  function ItemByIndex(...): TListBoxItem;    //获取指定序号的项
  procedure Exchange(...);                    //交换项
  procedure AddObject(...); override;        //添加项
  procedure RemoveObject(...); override;      //删除项
  procedure Sort(...); override;              //排序
  property Count: Integer ...;                //项总数
  property Selected: TListBoxItem ...;        //当前选择的项
  property Items: TStrings ...;              //元素文本的集合
  property ListItems[Index: Integer]: TListBoxItem ...; //根据索引获取项
  property ItemIndex: Integer ...;                      //索引
end; { TListBox }
published
  property StyleLookup;              //
  property AllowDrag;                //是否允许拖放
  property CanFocus;                //
  property DisableFocusEffect;      //
  property TabOrder;                //
  property AlternatingRowBackground; //是否使用交替背景
  property Columns;                  //列数; 默认 1
  property HideSelectionUnfocused;  //在失去焦点时是否隐藏选择
  property Items;                    //
  property ItemIndex;                //
  property ItemWidth;                //项宽
  property ItemHeight;              //项高
  property ListStyle;                //列表样式; TListStyle = (lsVertical, lsHorizontal);
  property MultiSelect;              //是否允许多选; 为 True 时, 配合 Ctrl 键多选
  property Sorted;                  //
  property ShowCheckboxes;          //是否显示复选框; 默认 False
  property BindingSource;            //绑定源
  property OnChange;                //有变化时
  property OnChangeCheck;            //调整复选框时
  property OnCompare;                //排序比较时
  property OnDragChange;            //拖放项时
end; { TListBoxItem }
public
  constructor Create(...); override; //
  property Data: TObject ...;        //
  property Index: Integer ...;      //
published
  property IsChecked: Boolean ...;  //复选值
  property IsSelected: Boolean ...;  //
  property AutoTranslate ...;        //
  property Font;                    //
  property StyleLookup;              //
  property Text;                    //
  property TextAlign ...;            //
  property WordWrap;                //
end;

测试:

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  ListBox1.Align := TAlignLayout.alLeft;
  ListBox1.ShowCheckboxes := True;
  ListBox1.AlternatingRowBackground := True;
  for i := to do
  begin
    ListBox1.Items.Add('Itme' + IntToStr(i));
    ListBox1.ListItems[i].IsChecked := Odd(i);
  end;
end;

Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox的更多相关文章

  1. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  2. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

  3. Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit

    Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...

  4. Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo

    Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo 值得注意的变化: 1.其父类 TScrollBox 的许多特性也很有用处, 如:   Memo1.UseSma ...

  5. Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox

    Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollB ...

  6. Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu

    Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopup ...

  7. Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览

    Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public   constructor Create(...); ov ...

  8. Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm

    Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...

  9. Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它

    Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...

随机推荐

  1. css中新增的属性calc()可以计算使用

    什么是calc: calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度.可以使用calc()给元素的border.margin.pading.font-s ...

  2. xss非法字段过滤

    import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util. ...

  3. TensorRT 介绍

    引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应 ...

  4. 解释c# Peek 方法

    peek是用来确定你read的文件是否结束了,如果结束了会返回int型 -1 , 举个例子,你可以在输出每一行之前检查一下文件是否结尾,如果没结束就输出此行. StreamReader sr = ne ...

  5. 牛客假日团队赛5J 护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)

    链接:https://ac.nowcoder.com/acm/contest/984/J 来源:牛客网 护城河 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  6. jmeter+ant 实现自动化接口测试环境配置

    前置:安装jdk 1.8以上 一.安装jemeter 下载地址:http://jmeter.apache.org/download_jmeter.cgi 1.1 解压jmeter,放在某个目录,例如D ...

  7. DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强

    行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部 ...

  8. ZROI 19.08.10模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(20pts:\) 枚举操作序列然后暴力跑,复杂度\(O(6^n)\). \([50,80]pts:\) 枚举改成dfs,每层操 ...

  9. inotify.sh脚本范例

    inotify.sh脚本范例       [root@A-Server58 ~]# cat /server/scripts/inotify.sh#!/bin/bash#parahost01=192.1 ...

  10. react在视频中截图,保存为base64位

    wq:之前看了网上很多教程,有点模糊,但是最后还是搞了出来 1  不要将视频放到canvas上面!  之前一直将video重新画到canvas上面,然后再次将第一个canvas放到第二个canvas上 ...