注册 登录
编程论坛 PowerBuilder

[求助]图片显示问题

石门书生 发布于 2006-07-14 11:11, 857 次点击
c_d为当前文件夹浏览记录时从数据库中出来图片产生临时文件"1.jpg" dw_2.object.p_1.filename = c_d+"\1.jpg" p_1.picturename=c_d+"\1.jpg" 有时候这两句失去作用,显示不出图片来,是空白,文件“1.jpg”已经产生,路径也对、搞了一天,一晚上也没弄明白。
5 回复
#2
fgypblt2006-07-14 11:31
dw_2.object.p_1.filename = c_d+"\1.jpg" //?dw_2.modify(...)
................p_1.picturename=c_d+"\1.jpg" //有效

根据你的说明,要么是显示与dw_2时图片还未准备好,要么是赋p_1属性问题。
如果你的系统是xp的,打包后执行看看,操作系统是否出 ‘错误发送信息’。

[此贴子已经被作者于2006-7-14 15:20:50编辑过]

#3
cc_lihua2006-07-14 11:35
//不超过32K
//blob aa
//integer i
//i=fileopen('d:\dd\b.bmp',streammode!)
////文件长度不能超过32765字节
//if i<> -1 then
// fileread(i,aa)
// fileclose(i)
// p_1.setpicture(aa)
//end if
//超过32K
blob aa,lbb_bmp,lbb_tmp
integer li_filenum,li_loopnum,li_loop
long ll_flength
string str_bmpname
str_bmpname='d:\dd\b.bmp'
ll_flength = FileLength(str_bmpname)
if IsNull(ll_flength) then ll_flength = -1
if ll_flength < 0 then
Messagebox("错误信息", "图文件不存在!", Exclamation!)
return
end if
//打开文件
li_FileNum = FileOpen(str_bmpname, StreamMode!, Read!)
if li_FileNum < 0 then
FileClose(li_FileNum)
Messagebox("错误信息", "打开图文件 " + str_bmpname + " 失败!", Exclamation!)
return
end if
//读文件数据 ,大于32K要多次循环取
li_loopnum = ll_flength / 32765 + 1
for li_loop = 1 to li_loopnum
FileRead(li_FileNum, lbb_tmp)
lbb_bmp = lbb_bmp + lbb_tmp
next
p_1.setpicture(lbb_bmp)
FileClose(li_FileNum)
#4
石门书生2006-07-14 11:36

我用PB8.0 在窗体和数据窗口能大多时候正常显示,什么有时不能,不能时路径和文件c_d+"\1.jpg" 都正确

#5
潇洒老乌龟2006-07-15 22:31
#6
lyzmain2006-07-17 10:17
老乌龟的方法需要柯达控件的支持,从 win95 到 win2000 均自带有,从 winXP 开始不自带了,需要自己安装。
1