• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DelphiXE2之FireMonkey入门(41)-控件基础:TListBox

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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 := 0 to 9 do
  begin
    ListBox1.Items.Add('Itme' + IntToStr(i));
    ListBox1.ListItems[i].IsChecked := Odd(i);
  end;
end;

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 := 0 to 9 do
  begin
    ListBox1.Items.Add('Itme' + IntToStr(i));
    ListBox1.ListItems[i].IsChecked := Odd(i);
  end;
end;

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab和c#联合仿真之三发布时间:2022-07-18
下一篇:
matlab制造一个64*64的仿真数据发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap