PB8.0中用Picture控件显示Jpg图片为什么有时显示不出来?

starsail 2003-09-14 11:55:06
开发环境:PB8.0 + WIN2000 SERVER + ACCESS
我的一个小程序实现把JPEG图片保存在ACCESS库中,先用selectblob把图片取到一个Blob变量中,再用Picture控件的SetPicture方法显示。其中一个小Picture显示缩略图,点击后在一个新窗口中显示原尺寸的图。
运行中大多数情况正常,但偶尔缩略图显示不出来,Picture控件是灰色的,但点击后源图可以正常显示,或者相反,缩略图可以显示,源图不能显示。然后再切换几个记录的图片后再点回来又是好的。是不是SetPicture()方法有问题啊?有人遇到过吗?
...全文
480 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
starsail 2003-11-26
  • 打赏
  • 举报
回复
通告一下:最近我换了PB9后,图片显示不出来的毛病再没有了。看来还是PB8的问题。
yewenlin 2003-10-24
  • 打赏
  • 举报
回复
我也碰到图片时而显示时而不显示的问题 ,我的图片是属性直接链接进来的。在运行的过程也出现和你一样的情况,问了一些人都说不出原因,我认为是PB本身的问题
starsail 2003-09-23
  • 打赏
  • 举报
回复
顶一下。
starsail 2003-09-17
  • 打赏
  • 举报
回复
去掉了Resize事件还是一样,郁闷。。。
重起两遍程序,点某两条记录时,原尺寸显示不出来,其他记录是好的。第三遍又都能显示了。#%!!¥%!
starsail 2003-09-17
  • 打赏
  • 举报
回复
我是从数据库里读到Blob变量,再用SetPicture方法写道Picture控件里,不是读文件。读文件的要点我知道。
而且不是每次都不显示,而是偶尔。在配置低的机器上就比较频繁了。
唯一问题是。。。我在显示后改变了Picture的位置,如原尺寸显示图片窗口:
=============Resize事件=============
double ratio
int li_x,li_y

li_y=(this.Height - p_1.Height)/2
if li_y<0 then
li_y=0
end if
p_1.Y=li_y

li_x=(this.Width - P_1.Width)/2
if li_x<0 then
li_x=0
end if
p_1.X=li_x

===============Open事件=============
p_1.OriginalSize=true
p_1.SetPicture(gb_image)

其他没有事件了。
marcia 2003-09-17
  • 打赏
  • 举报
回复
是啊,而且要注意循环中大二进制连接的次序 lb_pic=lb_pic + lb_temp.
还要注意在你对lb_pic 变量重新赋值、连接时是不是已经有了一些不该有的内容,我也碰到过你说的问题,别急仔细分析分析代码
klbt 2003-09-15
  • 打赏
  • 举报
回复
同意thelazyman(无名)的分析
鸡翅多 2003-09-15
  • 打赏
  • 举报
回复
If you use FileRead to get the bitmap image from a file, remember that the FileRead function can read a maximum of 32765 characters at a time. To check the length of a file, call FileLength. If the file is over 32765 characters, you can call FileRead more than once and concatenate the return values.
thelazyman 2003-09-15
  • 打赏
  • 举报
回复
没遇到过,不过你要注意存取图片时,
图片大小大于32767个字节的时候,要循环读取!!!
jdsnhan 2003-09-15
  • 打赏
  • 举报
回复
具体问题具体分析,把部分脚本贴出来看看。

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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