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

handsy 2008-11-23 09:13:31
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;

图片就是显示不出来。 哪位高人能够指点一下。 谢谢了。 
...全文
252 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙岛主 2008-11-24
  • 打赏
  • 举报
回复
不是variant类型匹配了就会显示图片,variant类型仅仅包含基本的数据类型,并不包括TBitmap或者是TGraphic等类似类型。
我认为你应该换一下思路,转换成具体的picture格式。
handsy 2008-11-24
  • 打赏
  • 举报
回复
问题已经解决。 和大家分享一下

列类型还是image .
建立一个tcximage 的对象。然后把图片加载进去。
这个对象有一个属性。tcximage.editvalue 。 直接就把图片用variant输出。
node.value[imagecolumnindex] := tcximage.editvalue .
就可以了
handsy 2008-11-23
  • 打赏
  • 举报
回复
自己顶一下
内容概要:本文系统研究了基于交替方向乘子法(ADMM)的多主体综合能源系统分布式协同优化方法,旨在实现多个能源主体之间的高效、隐私保护的能量协同管理。通过建立各主体的局部优化模型,并引入一致性约束条件,利用ADMM算法将集中式优化问题分解为多个分布式子问题进行迭代求解,从而在保证各主体数据隐私的同时达成全局协同优化目标。研究涵盖了模型构建、算法实现、收敛性分析及数值仿真全过程,并提供了完整的Matlab代码实现,有效复现了相关学术成果,具有较强的可验证性与可拓展性。; 适合人群:具备一定数学建模能力与优化理论基础,熟悉Matlab编程,从事综合能源系统、分布式优化算法、电力系统调度等相关方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握ADMM算法在多主体能源系统协同优化中的建模与实现方法;② 构建支持隐私保护的分布式能源调度系统;③ 利用开源代码开展算法改进、性能测试或应用于实际系统的二次开发与科研论文复现; 阅读建议:建议结合凸优化与分布式计算的基础知识,深入理解增广拉格朗日函数构造、对偶更新与收敛判据的设计原理,在代码调试过程中重点关注惩罚参数选取、变量分裂策略及通信机制的实现细节,以全面掌握算法的核心机制与工程应用要点。

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧