TcxTreeList 的问题。难为了 4,5个小时了。请大家帮忙!!

handsy handsy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
TcxTreeList 我定义了4个列。
第一列式隐藏的。显示ID
第二列显示名称
第三列是隐藏的保存图片在imagelist 里的ID
第四列显示图片 。 把 properties 属性我设置成了image . 想要在这列里显示 图片。
手动往里面写数据。 可是图片就是显示不出来。下面是我的代码。 我如何更改 ?
图片时从imagelist 里面读出来的 。 每个语句后面我都加了一些注释。 

CategoryInfoGrid.Clear; //CategoryInfoGrid 是TcxTreeList 列表
CategoryInfoList := TaskXML.GetAllCategory; //获得所有的显示数据。 CategoryInfoList 是一个结构数组
for i := low(CategoryInfoList) to high(CategoryInfoList) do
begin
CategoryInfoNode := CategoryInfoGrid.Add;
CategoryInfoNode.Values[0] := CategoryInfoList[i].ID; //ID
CategoryInfoNode.Values[1] := CategoryInfoList[i].Name; //名字
CategoryInfoNode.Values[2] := CategoryInfoList[i].IconID; // 图片在imagelist 里的的ID
//根据ID 获得BMP
CategoryBMP := TBitmap.Create;
if FrmMainForm.ImgListCateGory.GetBitmap(CategoryInfoList[i].IconID,CategoryBMP) then
begin
GraphStream := TMemoryStream.Create;
CategoryBMP.SaveToStream(GraphStream);
StrFunc.StreamToVariant(GraphStream, GraphVariant);
CategoryInfoNode.values[3] := GraphVariant;
end;
end;

procedure TStrFunc.StreamToVariant(Stream: TMemoryStream; var v: OleVariant);
var
p : pointer;
begin
v := VarArrayCreate ([0, Stream.Size - 1], varByte);
p := VarArrayLock (v);
Stream.Position := 0;
Stream.Read (p^, Stream.Size);
VarArrayUnlock (v);
end;

图片就是显示不出来。 哪位高人能够指点一下。 谢谢了。 
...全文

相关推荐

TcxtreeList 装入代码

CONST SName: ARRAY[0..3] OF STRING = ('xmmc', 'xmbm', 'gltw', 'tg'); procedure LoadTcxTReeList(Tree:Tcxtreelist;Qeytable:TAdoQuery;bm:string;SName:array of string); var level,firstlen,k,i:integer; mynode:array[0..9] of TcxTreeListNode;//存每层节点,最大十层 begin k:=Length(SName); tree.Clear; if Qeytable.RecordCount=0 then Exit; level:=0; Qeytable.First; Tree.BeginUpdate; firstlen:=Length(Qeytable[bm]);//第一层编码长度 mynode[level]:=tree.TopNode; //取根节点 while not Qeytable.Eof do //遍历数据表,利用编码字段记录排序规律,依次添加树节点 begin level:=(Length(Qeytable[bm])-firstlen) div 2; //第几层 if (level-1)<0 then mynode[level]:= tree.add(mynode[0],nil) else mynode[level]:= tree.addchild(mynode[level-1],nil); for i:=0 to k-1 do begin if not Qeytable.FieldByName(SName[i]).IsNull then mynode[level].Texts[Tree.ColumnByName(SName[i]).ItemIndex]:=Qeytable[sName[i]]; end; Qeytable.next; end; Tree.EndUpdate; mynode[0].expand(False); tree.Items[0].Selected := True; end;

LzLlzl001

DevExpress VCL 26.1.3安装实战与Delphi桌面开发效率提升指南

在Delphi桌面开发中,组件库的选择直接影响企业级管理系统的构建效率。DevExpress VCL作为商业级VCL控件集,通过封装复杂表格、报表、Ribbon界面等底层逻辑,让开发者从重复造轮子中解放出来,专注于业务实现。其安装配置看似简单,实则涉及IDE版本匹配、环境清理、设计期包注册等关键环节。本文从组件库的技术价值出发,梳理DevExpress VCL的完整安装流程与验证方法,剖析cxGrid、dxRibbon、cxTreeList等核心控件的功能定位,并延伸至FireMonkey跨平台、PDA扫码

weixin_34203832

DELPHI工作日志管理系统.rar

DELPHI工作日志管理系统,功能方面包括:日程添加管理、日程提醒(闹钟)等。程序要用到DEV 控件,如果编译出错去掉下列语句:   带有cbsUnchecked 和 cbschecked 等不能编译的语句,删除 unit4 引用……   *.mwk 是数据库

weixin_39840387

Delphi 1【企业人力资源管理系3统】De.lphi开发的员工与1部门管理信息系统:实现增删改查及数据统计功能

unit fybkh.docx

tjsoft

Delphi 13.1控件之DevExpress VCL Controls 25.2.7 HH.7z

Delphi 13.1控件之DevExpress VCL Controls 25.2.7 HH.7z

tjsoft
评论 3
收藏 已收藏
分享
返回顶部
handsy
Delphi 5,944 成员 262,941 内容