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;图片就是显示不出来。 哪位高人能够指点一下。 谢谢了。
第一列式隐藏的。显示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;图片就是显示不出来。 哪位高人能够指点一下。 谢谢了。
解决方案 »
- setwindows函数怎么使用?
- 大家看看这段代码错在哪里?
- /////////这样建临时表怎么建不起来,也不出错?????
- 从SQL Server导出的数据怎样把数据类型,数据长度定位到TStringGrid的各列?
- 关于MessageBox的问题
- 一个查询的数据集结果,如何一下定位到指定的那一行,不通过循环?
- 大家请帮忙,我查了大半天实在找不到错误的原因(急坏了!!!!!!)
- 如果查找一个目录下的特定文件?急
- ====如何得到位图的实际尺寸?====
- 请问怎样在自己的程序里面更改别的程序的菜单,如改记事本的菜单。
- 怎么用代码删除Form上的控件(form上的控件也是用代码创建的)
- 关于EhLib版本问题
我认为你应该换一下思路,转换成具体的picture格式。
建立一个tcximage 的对象。然后把图片加载进去。
这个对象有一个属性。tcximage.editvalue 。 直接就把图片用variant输出。
node.value[imagecolumnindex] := tcximage.editvalue .
就可以了