首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

动态创建BITMAP的有关问题

2012-02-29 
动态创建BITMAP的问题。ls_AddPict create bitmap(bandforeground filename + ls_Picture + + &

动态创建BITMAP的问题。
ls_AddPict ='create bitmap(band=foreground filename="' + ls_Picture + '" ' + &
' x="' + String(li_PictPos) + "~tInteger(describe('" + is_OrderCol + & 
".X')) + (Integer(describe('" + is_OrderCol + ".Width'))" + ' - 70)" y="24" ' + &
' height="33" width="51" border="0" name=p_' + is_OrderCol + ' visible="1")'
This.Modify(ls_AddPict)
This.SetSort(is_OrderCol + " " + is_SortType)
可以看到ls_addpict 的值 为 create bitmap(band=foreground filename="orderup.bmp" x="1653integer(describe('shjbumen.x')) + (integer(describe('shjbumen.width')) - 70)" y="24" height="33" width="51" border="0" name=p_shjbumen visible="1"),
问题一:为什么X坐标的属性 的值 是 字符串呢。如果去掉integer(describe.....)部分创建动态bitmap就失败了。
问题二:动态创建的bitmap对象的属性 怎么 访问呢?

[解决办法]
一、对于数值类型,在指定的时候可以做为字符串,另外,属性值为表达式时,肯定要用引号括起来的,要不编译器怎样去分析呢?你的图片地是由其它两个组件的位置动态计算的,所以肯定要括起来,你可以手工建一个bitmap,修改它的X属性为表达式,再到EditSource下去看看就知道了;
二、动态创建的与手工创建的一样,都可以通过它的name来访问的,你的name就是'p'+ is_ordercol
[解决办法]
一、数据窗口对象语法中坐标的属性值为啥是字符串?你的代码就给出了答案呀,因为坐标值除了可以设置一个默认数值1653外,还可以设置坐标的表达式 integer(describe('shjbumen.x')) + (integer(describe('shjbumen.width')) - 70),如果只能是数字的话,你的表达式就非法了。
二、用describe来访问。

热点排行