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;

图片就是显示不出来。 哪位高人能够指点一下。 谢谢了。 
...全文
268 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
  • 打赏
  • 举报
回复
自己顶一下
【变分多谐波对偶模式追踪】从噪声信号中提取重复瞬态分量的方法(Matlab代码实现)内容概要:本文介绍了“变分多谐波对偶模式追踪”这一信号处理方法,旨在从含有噪声的信号中有效提取重复出现的瞬态成分。该方法结合了变分模态分解与多谐波分析的优势,通过构建对偶模式追踪模型,实现了对微弱瞬态特征的精准分离与增强,特别适用于机械故障诊断、生物医学信号处理等领域。文中详细阐述了算法原理、数学模型构建及其实现步骤,并提供了基于Matlab的代码实现,便于读者复现与应用。; 适合人群:具备一定信号处理基础,从事机械故障诊断、生物医学工程或相关领域的研究生及科研人员。; 使用场景及目标:①从强噪声背景中提取机械设备的周期性冲击信号以进行故障预警;②分析生物医学信号中的重复生理事件,如心电图或脑电图中的特定波形;③为需要高精度瞬态特征提取的研究提供可靠的算法支持与实现范例。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示了算法的具体编程细节,还强调了理论与实践的紧密结合。学习者应在理解算法原理的基础上,动手运行并调试所提供的代码,通过改变参数观察结果变化,从而深入掌握该方法的应用技巧与优化策略。
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究(Matlab代码实现)内容概要:本文研究了非线性值迭代自适应动态规划(ADP)方法,旨在解决离散时间非线性系统的最优控制问题。通过构建近似动态规划框架,结合值迭代算法,利用函数逼近器(如神经网络)对系统代价函数进行学习与优化,逐步逼近最优控制策略。文中详细阐述了算法的数学推导、收敛性分析及其实现流程,并以典型非线性系统为例,采用Matlab进行仿真验证,展示了该方法在处理复杂非线性系统优化控制方面的有效性与优越性。; 适合人群:具备自动控制理论、最优化方法及Matlab编程基础的研究生、科研人员以及从事智能控制、工业自动化等相关领域的工程技术人员。; 使用场景及目标:①研究和解决离散时间非线性系统的最优控制问题;②学习和掌握自适应动态规划(ADP)及值迭代算法的核心思想与实现技巧;③利用Matlab进行先进控制算法的仿真与验证,为复杂系统控制设计提供理论依据和技术支持。; 阅读建议:此资源侧重于理论与实践的结合,建议读者在学习过程中,不仅关注算法的数学推导,更要动手实践Matlab代码,通过调整参数、更换被控对象等方式加深理解,并尝试将其应用于其他类型的非线性系统控制问题中。

5,943

社区成员

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

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