Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
测试, 先在窗体上放一个 TTreeView, 并需要它的 OnChange 事件:
unit Unit1; interface uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Layouts, FMX.TreeView; type
TForm1 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
procedure TreeView1Change(Sender: TObject);
end; var
Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormCreate(Sender: TObject);
var
item: TTreeViewItem;
i: Integer;
begin
TreeView1.Align := TAlignLayout.alLeft;
TreeView1.UseSmallScrollBars := True;
TreeView1.AlternatingRowBackground := True;
TreeView1.ShowCheckboxes := True; item := TTreeViewItem.Create(Self);
item.Parent := TreeView1;
item.Text := 'Item1'; item := TTreeViewItem.Create(Self);
item.Parent := TreeView1;
item.Text := 'Item2';
for i := to do
with TTreeViewItem.Create(Self) do
begin
Parent := item;
Text := item.Text + '_' + IntToStr(i+);
IsChecked := Odd(i);
end;
item.IsExpanded := True; item := TTreeViewItem.Create(Self);
item.Parent := TreeView1;
item.Text := 'Item3';
end; procedure TForm1.TreeView1Change(Sender: TObject);
var
item: TTreeViewItem;
begin
item := TreeView1.Selected;
if item <> nil then
begin
ShowMessageFmt(
'TreeView1.GlobalCount: %d'#13#10 +
'TreeView1.Count: %d'#13#10 +
'TTreeViewItem.Count: %d'#13#10 +
'TTreeViewItem.Level: %d'#13#10 +
'TTreeViewItem.GlobalIndex: %d'#13#10 +
'TTreeViewItem.Index: %d'#13#10
, [TreeView1.GlobalCount, TreeView1.Count, item.Count, item.Level, item.GlobalIndex, item.Index]
);
end;
end; end.
成员概览:
{ TCustomTreeView }
public
constructor Create(...); override; //
destructor Destroy; override; //
procedure EndUpdate; override; //结束更新
procedure Clear; //清空
procedure ExpandAll; //全部展开
procedure CollapseAll; //全部关闭
function ItemByText(...): TTreeViewItem; //根据标题获取项
function ItemByPoint(...): TTreeViewItem; //根据位置获取项
function ItemByIndex(...): TTreeViewItem; //根据索引获取项
function ItemByGlobalIndex(...): TTreeViewItem; //根据总索引获取项
procedure AddObject(...); override; //
procedure RemoveObject(...); override; //
procedure MouseDown(...); override; //
procedure MouseMove(...); override; //
procedure MouseUp(...); override; //
procedure KeyDown(...); override; //
procedure KeyUp(...); override; //
procedure DragOver(...); override; //
procedure DragDrop(...); override; //
property Count: Integer ...; //第一层项总数
property GlobalCount: Integer ...; //项总数
property CountExpanded: Integer ...; //???
property Selected: TTreeViewItem ...; //当前选择的项
property Items[Index: Integer]: TTreeViewItem ...; //索引到项
property AllowDrag: Boolean ...; //是否允许拖拽
property AlternatingRowBackground: Boolean ...; //是否使用交替背景
property ItemHeight: Single ...; //项高
property HideSelectionUnfocused: Boolean ...; //是否在失去焦点时隐藏选择
property MultiSelect: Boolean ...; //能否多选
property ShowCheckboxes: Boolean ...; //是否显示多选框
property Sorted: Boolean ...; //
property OnChange: TNotifyEvent ...; //
property OnChangeCheck: TNotifyEvent ...; //
property OnCompare: TOnCompareTreeViewItemEvent ...; //
property OnDragChange: TOnTreeViewDragChange ...; //
end;
{ TTreeView }
published
property StyleLookup; //
property CanFocus default True; //
property DisableFocusEffect; //
property TabOrder; //
property AllowDrag default False; //
property AlternatingRowBackground default False; //
property ItemHeight; //
property HideSelectionUnfocused default False; //
property MultiSelect default False; //
property ShowCheckboxes default False; //
property Sorted default False; //
property OnChange; //
property OnChangeCheck; //
property OnCompare; //
property OnDragChange; //
end;
{ TTreeViewItem }
public
constructor Create(...); override; //
procedure Paint; override; //
procedure AddObject(...); override; //
procedure RemoveObject(...); override; //
procedure Sort(...); override; //
function ItemByPoint(...): TTreeViewItem; //根据位置获取项
function ItemByIndex(...): TTreeViewItem; //根据索引获取项
property Count: Integer ...; //子项数
property GlobalIndex: Integer ...; //全局索引
function TreeView: TCustomTreeView; //拥有它的 TreeView
function Level: Integer; //在第几层
function ParentItem: TTreeViewItem; //父项
property Items[Index: Integer]: TTreeViewItem ...; //索引到子项
published
property IsChecked: Boolean ...; //是否选中复选框
property IsExpanded: Boolean ...; //是否展开
property IsSelected: Boolean ...; //是否选择
property AutoTranslate default True; //是否自动接收语言翻译
property Font; //
property StyleLookup; //
property Text; //
property TextAlign default TTextAlign.taLeading; //
end;
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem的更多相关文章
- Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid
Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...
- Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit
Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...
- Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox
Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项 ...
- Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo 值得注意的变化: 1.其父类 TScrollBox 的许多特性也很有用处, 如: Memo1.UseSma ...
- Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox
Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollB ...
- Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu
Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopup ...
- Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public constructor Create(...); ov ...
- Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm
Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...
- Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它
Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...
随机推荐
- Git入门指南九:远程仓库的使用【转】
转自:http://blog.csdn.net/wirelessqa/article/details/20152651 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 十三 ...
- java高并发实战Netty+协程(Fiber)|系列1(续)|事件驱动模式和零拷贝
上次讲到事件驱动模式,今天我们来好好分析下netty的事件模式的几个类型. 先从NIO讲起, JAVA NIO方面Selector给Reactor模式提供了基础,Netty结合Selector和Rea ...
- 拦截器HandlerInterceptor内部也可以注入bean,代码纠正补充
原文地址https://www.jianshu.com/p/890c23a1b3d7 原文内容 1.拦截器内无法通过SpringBean的方式注入LoggerJPA,我只能通过另外一种形式. priv ...
- Yii和ThinkPHP对比心得
本人小菜鸟一只,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,服务器)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人可以进来交流.寻求共同发展 ...
- Spring IOC(一)
最近复习,准备整理下复习笔记 Spring IOC 部分: 控制反转(Inversion of Control) IOC是什么 简言之 IOC完成的事情原先由程序员主动通过new实例化对象事情,转交给 ...
- encode()和decode()两个函数
编码可以将抽象字符以二进制数据的形式表示,有很多编码方法,如utf-8.gbk等,可以使用encode()函数对字符串进行编码,转换成二进制字节数据,也可用decode()函数将字节解码成字符串:用d ...
- 【NOIP2016提高A组集训第3场10.31】高维宇宙
题解 分析 因为只有奇数和偶数配对才有可能得出质数, 暴力求出每一对\(a_i+a_j\)为质数,将其中的奇数想偶数连一条边. 二分图匹配,匈牙利算法. #include <cmath> ...
- vue-项目模块化中this 指向问题
在VUE项目中,我们想把一些主要的代码抽到一个模块中 export default { /** * 获取本地的群列表数据 * @param {*} params */ getGroupList () ...
- 怎样将shp文件的坐标点导出来?
方法一: 1.将线矢量转化为点矢量 具体操作步骤如下: (1)arctoolbox\Data Management tools\Features\双击Feature Vertices to point ...
- 浅谈Android的资源编译过程
转载自 http://www.cnblogs.com/dyllove98/p/3144950.html 好长,记录下,一次看完感觉像没看一样 Android APK 一.APK的结构以及生成 APK是 ...