FoxListView
<p>FoxListView,FoxUI提供的列表浏览容器组件
<strong>属性</strong>
Alpha 透明度</p>
<p>CaptionEdit 标题是否可以编辑</p>
<p>HorzScrollBar 横向滚动条</p>
<p>ImageList 图标列表 对接 <a href="https://www.showdoc.cc/p/ff039e66f52948a431eb58f823029a54" title="FoxUIBmp32List">FoxUIBmp32List</a></p>
<p>GroupImgList 组项的图标列表</p>
<p>HeadImgList 列表头的图标列表</p>
<p>GroupSetting 组项设置
Font 组项字体
ItemHeight 组项高度
MarginBtn 组项按钮间距
ShowButton 显示组项按钮 展开或收缩
ShowGroup 是否显示组项 注意目前组和项是合在一起的所以这个可以控制组这部分是否显示
ShowHint 是否显示提示
ShowBtnNav 是否显示内部翻页按钮 此项仅仅在翻页模式生效
SelectAlone 在单选模式下保证各个group下的项目可以独立选中</p>
<p>HeadItems 列表头集合</p>
<p>HeaderSet 列表头设置
AutoSize 是否自动铺满
Font 列表头字体
Height 列表头高度
SplitWidth 分割线宽度
Visible 列表头是否可见
SortArrowSet 排列箭头设置
ArrowPos 箭头位置 可以在顶部 底部 或者标题右边
OffsetX 横向偏移
OffsetY 竖向偏移
Width 箭头宽度
Height 箭头高度</p>
<p>ItemHeight 项高度
ItemWidth 项宽度 当ViewStyle 式WvsIcon的时候生效</p>
<p>ItemFullPaint 项目完全可见下方绘制 <strong>注意此选项仅仅在滚动条设置无效时候放生效</strong></p>
<p>RowItemCount 一行绘制个数 仅在显示模式WvIcon下有效,并且未有自定义项高宽事件</p>
<p>MarginSet 间距管理
CheckBox 勾选框间距
~~ Head 表头间距~~
ImgList 图标间距
Item 项间距
Txt 文本间距</p>
<p>MultiSelect 是否支持多选</p>
<p>PopupMenu 右键菜单 对接 <a href="https://www.showdoc.cc/p/94e26e335005d1b7eb076bf28ccc13f0" title="FoxPopupMenu">FoxPopupMenu</a></p>
<p>RightSelect 是否支持右键选中项</p>
<p>RoundValue 圆角设置</p>
<p>PageMode 分页显示模式</p>
<p>HotTrack 是否响应鼠标行为更新</p>
<p>ShowCheckBox 是否显示勾选框</p>
<p>ShowSubItemSplitLine 是否显示子项竖向分割线 viewstyle为wvicon无效</p>
<p>ShowRowLine 是否显示项的横向分割线 viewstyle为wvicon无效</p>
<p>ShowItemHint 是否自动显示项的文字提示 包括超长文字自动提示</p>
<p>SkinSet 皮肤管理
Back 背景图皮肤序号
Arrow 排序箭头皮肤序号
GroupBtn 组项按钮皮肤序号
Head 列表头皮肤序号
Check 勾选框皮肤序号
Item 项皮肤序号
Line 分割线皮肤序号</p>
<p>VertScrollBar 竖向滚动条</p>
<p>ViewStyle 浏览方式 列表 图标 详细带列表头 </p>
<p>Transparent 背景透明</p>
<p><strong>提供的事件</strong>
OnAfterDraw(Sender: TObject; DstBmp: TBitmap32;Arect: TRect);</p>
<p>OnBeforeDraw(Sender: TObject; DstBmp: TBitmap32;Arect: TRect);
内部绘制前后事件</p>
<p>OnAfterBackDraw 背景绘制后触发</p>
<p>OnItemAfterDraw,OnItemBeforeDraw 项绘制前后触发</p>
<p>OnGroupItemAfterDraw,OnGroupItemBeforeDraw 组项绘制前后触发</p>
<p>OnItemFontSelect(Sender: TObject;AFont: TFont);
文字输出时候触发 方便动态修改字体</p>
<p>OnItemColorSelect 项目绘制颜色触发</p>
<p>OnItemEditInit 编辑框初始化 我们这里可以动态附加皮肤和设置等待</p>
<p>FOnItemAllowEdit 项编辑许可事件</p>
<p>OnItemGetImgIndex 获取图标序号触发 可以动态修改</p>
<p>OnItemShowCheckBox 我们可以在此事件中指定项是否显示勾选框</p>
<p>OnGroupItemFontSelect 组项绘制动态修改字体</p>
<p>OnGroupItemColorSelect 组项目绘制颜色触发</p>
<p>OnGroupItemSelectChange 组项目选择变化触发</p>
<p>OnGroupItemClick 组项点击触发</p>
<p>OnGroupItemDataDelete 组项数据绑定的可以在这里释放</p>
<p>OnGroupItemMouseOver,OnGroupItemMouseDown,OnGroupItemMouseUp 组项的鼠标事件,如果我们有自绘的对象,适合在这几个事件里进行判断联动。</p>
<p>OnGroupItemMeasure 组项动态修改尺寸</p>
<p>OnHeadItemChecked 列表头勾选触发</p>
<p>OnHeadItemClick 列表头点击触发</p>
<p>OnHeadItemGetCaption 列表头获取标题内容事件</p>
<p>OnHeadItemColorSelect 列表项自定义颜色事件</p>
<p>OnHeadItemFontSelect 列表项文字字体自定义事件</p>
<p>OnHeadItemSizeChanged 当列表头尺寸手动变化后触发</p>
<p>OnHeadItemAfterDraw,OnHeadItemBeforeDraw 列表头绘制前后触发</p>
<p>OnHeadItemOwnerDraw 列表头自定义绘制</p>
<p>OnHeadItemAllowSort 动态设定列表头是否可以排序</p>
<p>OnHeadItemSortChanged 列表头排序变化事件</p>
<p>OnHeadSplitLineColorSelect 表头分割线事件</p>
<p>OnGroupItemOwnerDraw 组项自定义绘制</p>
<p>OnGroupItemCheck 组勾选事件</p>
<p>OnGroupShowCheckBox 组是否显示勾选框事件</p>
<p>OnGroupCheckChange 组勾选变化事件</p>
<p>OnGroupItemAllowCheck 组是否允许勾选事件</p>
<p>OnGroupItemAllowSelect 组是否可以选中事件</p>
<p>OnGroupItemSelectChange 组是否允许切换选中事件</p>
<p>OnGroupBoardNavDraw 内部翻页面板及按钮绘制事件 </p>
<p>OnGroupBtnNavClick 翻页按钮左右点击事件</p>
<p>OnItemCheck 项勾选触发(用户手工点击)</p>
<p>OnItemCheckChange 项勾选变化触发</p>
<p>OnItemCheckBoxPosSelect 这个事件仅仅在Icon模式下触发
Apos定义 0:左上角 1:上居中 2:右上角 3:左居中 4:上下居中 5:右居中 6:左下角 7:下居中 8:右下角</p>
<p>OnItemAllowCheck 控制是否可以修改勾选状态</p>
<p>OnItemAllowSelect 控制是否可以修改选中状态</p>
<p>OnItemAllowSelectChange 控制是否可以切换选中状态</p>
<p>OnItemClick 项点击触发</p>
<p>OnItemDataDelete 如果有项的绑定数据在这个事件里可以释放</p>
<p>OnItemDbClick 项双击</p>
<p>OnItemGetCaption 动态获取标题事件</p>
<p>OnSubItemGetCaption 动态获取子标题事件</p>
<p>OnSubItemGetImgindex 动态获取子项图标事件</p>
<p>OnItemMouseOver,OnItemMouseDown,OnItemMouseUp 项的鼠标事件,如果我们有自绘的对象,适合在这几个事件里进行判断联动。</p>
<p>OnItemOwnerDraw 项自定义绘制</p>
<p>OnItemMeasure 项动态修改尺寸</p>
<p>OnItemIconMeasure 项动态修改尺寸 注意此事件在ViewStyle=WvsIcon下才会触发</p>
<p>OnItemRenameCaption 项重命名编辑的适合触发</p>
<p><del>OnItemDrawOffset 我们可以动态修改 左侧起点 已经删除此事件</del></p>
<p>OnItemSelectChange 项选中改变适合触发</p>
<p>OnItemRowLineColorSelect 绘制项横向分割线的时候触发此事件 注意viewstyle为wvicon时候不触发</p>
<p>OnSubitemSplitLineColorSelect 绘制项子项竖向分割线的时候触发此事件 注意viewstyle为wvicon时候不触发</p>
<p>OnSubItemOwnerDraw 项目子项目的自定义绘制事件</p>
<p>OnSubItemFontSelect 项的子项文字定自义事件</p>
<p>OnSubItemColorSelect 项的子项颜色定自义事件</p>
<p>OnSubItemCheck 项的子项勾选事件 注意仅仅是用户手工操作才会触发</p>
<p>OnSubItemBeforeDraw 项的从属项绘制前触发</p>
<p>OnSubItemAfterDraw 项的从属项绘制后触发 我们可以在这里画我们自己的内容 比如按钮 进度条等等</p>
<p>OnPageChange 分页模式下页面变化事件</p>
<p>OnPageGetItemCount 分页模式下每页动态设置显示项目个数事件</p>
<p>OnPageItemNewRow 分页图标模式下是否动态换行事件</p>
<p>OnPageInfo 分页模式下完全自定义每页显示索引</p>
<p>OnPageAfterDraw 在绘制完本页内容项目后触发此事件</p>
<p>OnScroll 滚动条滚动事件</p>
<p>OnHorzScrollGetAlpha 横向滚动条动态设定透明</p>
<p>OnvertScrollGetAlpha 竖向滚动条动态设定透明</p>
<p>OnHeaderGetAlpha 表头获取透明值</p>
<p>OnHeaderBeforeDraw 绘制表头前触发事件</p>
<p>OnHeaderAfterDraw 绘制表头完触发事件</p>
<p>OnHeaderRectColorSelect 表头整体底色的颜色选择事件</p>
<p><strong>提供的方法</strong>
Procedure Clear;//清除列表项
<del>Procedure ClearGroup;//清除所有group项</del>
Procedure ClearHeader;//清除所有表头
<del>Procedure MakeItemVisible(item:TFoxlvitem;Ani:Boolean);//保证选中的项目可见</del>
<del>procedure MakeGroupItemVisible(item:TFoxGroupItem;Ani:Boolean=False);//保证选中的group可见</del>
Procedure MakeItemVisible(Aobj:TFoxLvBaseObject;Ani:Boolean=false);//保证选中的项目可见
procedure DoItemClick(item:TFoxlvitem);//项点击
function ItemAtPos(pt:TPoint):TFoxLvBaseObject;//光标获取到的item 或者 Group
procedure SortItemList(Compare: TListSortCompare);//对项目列表排序
<del>procedure SortGroupList(Compare: TListSortCompare);//对Group列表进行排列</del>
Procedure RepaintHeadItems;//重绘制表头内容
procedure InvalidateItem(Aitem:TFoxLvItem);//区域更新个项
Procedure InvalidategItem(Aitem:TFoxGroupItem);//区域更新GroupItem
Function AddItem:TFoxLvItem;overload;//加入item
Procedure Additem(item:TFoxLvItem);overload;
function AddGroupItem:TFoxGroupItem;overload;
Procedure AddGroupItem(item:TFoxGroupItem);overload;//加入groupitem
Procedure DeleteGroupItem(Aitem:TFoxGroupItem);//删除groupitem
procedure InsertItem(item:TFoxLvItem;index:Integer);//插入项
procedure MoveObj(SrcObj,DestObj:TFoxLvBaseObject);
procedure MoveItem(SrcItem,DestItem:TFoxLvItem);//移动项
procedure MoveGroup(SrcGroup,DestGroup:TFoxGroupItem);//移动组
Function AddHeadItem:TFoxLvHeadItem;//加入Headitem//增加列标头
Procedure DeleteItem(Aitem:TFoxLvItem);//删除一个项
Procedure DeleteSelected;//删除所有选中
Procedure RenameCaption(Aitem:TFoxLVitem;estr:String);//重命名项caption
function SaveToFile(FileName:String):Boolean;//把结构保持成json文件
function SaveToSteam(Stream:TStream):Boolean;//保存json到流
function LoadFromFile(FileName:String):boolean;//从json文件里载入结构
function LoadFromStream(Stream:TStream):Boolean;//从json流载入
procedure DisplayNextItem;//显示下一个item 或者 group
procedure DisplayPrvItem;//显示前一个item</p>